
이번주는 프로젝트의 DB 모델링을 끝내고 본격적인 백엔드 개발을 시작했다. 전에 배운 Spring boot의 MyBatis, JPA를 사용해서 카테고리의 추가, 수정, 삭제, 조회 기능을 개발해야한다. 드디어 배운 기술을 사용해볼 수 있게 되었다. 내가 개발을 맡은 기능 중 하나인 쪽지 기능이 구현이 어려울 것이라고 생각이 되는데, 어떻게 개발해야 될지 주말 동안 구상을 해볼 예정이다.
데이터의 입력, 조회, 수정, 삭제(CRUD)를 보다 편하게 할 수 있도록 xml로 구조화한 Mapper설정 파일을 통해 JDBC를 구현한 영속성 프레임워크이다.
기존에 JDBC를 통해 구현했던 상당 부분의 코드, 파라미터 설정 및 결과 mapping을 xml 설정으로 쉽게 구현할 수 있게 한다.
자바 진영의 ORM(Object Relational Mapping) 기술 표준으로 ORM 기술을 사용하기 위한 표준 인터페이스의 모음이다.
ORM은 자바 객체와 DB테이블을 매핑하고 자바 객체간의 관계를 토대로 SQL을 생성 및 실행 할 수 있으며 대중적인 언어에는 대부분 ORM 기술이 존재한다.
Mybatis는 SQL Mapper로 SQL Mapping을 사용하는 영속성(DB저장) 프레임워크이다. 개발자가 직접 SQL코드를 작성하고 객체에 대해 매핑을 위한 설정을 모두 직접 처리해야 한다. 또한, 수정이 이루어질 시 SQL뿐 아니라 매핑 될 객체까지 같이 수정해야 하는 번거로움이 있다.
JPA와 마이바티스는 분류상 서로 다르다. JPA는 ORM 기술이고, Mybatis는 SQL Mapper의 한 종류이다.
JPA가 무조건 좋은 것이 아니다. 다만 JPA는 추가 라이브러리를 활용하면 복잡한 SQL이나 동적 SQL에 있어서 도움을 받을 수 있다.
우리 프로젝트의 진행이 속도가 붙은 것같다. 평소에 잠을 줄여가며 문서 작성, DDD, DB 모델링에 시간을 투자한 것이 도움이 되었다고 생각된다.
프로젝트 기간이 일주일 조금 넘게 남았지만, 나는 시간이 많다고 생각하지 않는다. 빨리 내 일을 끝내고 다른 팀원들의 작업을 도와줄 생각이다.
최근에 프로젝트를 하느라고 잠을 제대로 자지 못했다. 다른 팀원들과 다른 조의 사람들도 그렇겠지만, 부족한 수면으로 인해 수업 중에 조는 일이 많아지고 집중도 잘 하지못했다. 이번 주는 시간관리가 아닌 체력관리를 잘 하지 못한 것같다.
주말 동안 평일에 못 잤던 잠을 좀 잘생각이다. 이렇게라도 해야 다음주를 어떻게든 버텨낼 수 있을 것같다. 남은 프로젝트 일정도 잘 소화하려면 시간이 많은 주말에라도 잠을 몰아서 자는 수 밖에 없는 것같다.
드디어 스프링 백엔드 개발 단계까지 왔다. 한달 넘게 배운 자바를 써먹을 수 있는 기회가 온 것이다. 개발 기간 동안 배운 것들을 최대한 많이 개발에 사용해볼 생각이다.