분류 전체보기

·Framework/JPA
2024.03.21 - [Framework/JPA] - [연관관계 매핑 기초] 단방향 연관관계와 객체와 테이블의 차이이전 포스팅에서는 단방향에 대해 알아보았다. 이때 객체와 테이블은 패러다임의 차이가 있어 관계를 표현하는 게 다른 것을 확인했다. 테이블은 기본적으로 외래키 조인을 활용한 양방향인데 객체의 필드를 참조하는 방식은 단방향이다.  양방향 연관관계데이터베이스 테이블처럼 양방향으로 조회하기 위해선 반대쪽 객체의 단방향 참조를 추가하여 양방향 연관관계를 매핑할 수 있다. 회원과 팀은 다대일 관계이다. 반대로 팀과 회원은 일대다 관계이다. 팀쪽에(반대쪽 엔티티)의 회원에 대한 단방향 연관관계를 추가하므로 Team.members라는 List 컬렉션이 추가됨을 알 수 있다.다대일 관계에서 표현한 것이다...
·Framework/JPA
객체의 참조는 필드를 매핑한다. 이 필드를 매핑하긴 위해선 @JoinColum을 이해할 필요가 있다.   @Entity public class Member { @Id @Colunm(name = "MEMBER_ID") private String id; private String username; //연관관계 매핑 @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; //연관관계 설정 private void setTeam(Team team) { this.team = team; } //Getter, Setter}@Entitypublic class Team { @Id @Col..
3주차 이번 주차에서는 특정 주제 3가지 중 하나를 선택하여 프로젝트 전 요구사항을 분석해 보는 시간이었다. 개인적으로 요구사항 분석 시 사용되는 시퀀스 다이어그램이나 API 명세 같은 작업을 별로 좋아하지 않는다. 귀찮기도 하고 문서 작업은 아무래도 큰 흥미를 발생시키지 않지 때문이다. 그래서 간단한 시나리오와 ERD 정도만 생각하고 바로 코드 작업에 들어갔다. 하지만 이런 식으로 작업하다보면 큰 빈틈을 발생시키게 된다. 평생 혼자 일한다면 상관 없겠지만 취업, 이직을 위한 Github의 작업물을 제공해야 될 때 또는 과제전형이 있었을 때 이런 문서를 제공하는 것은 당연하다. 이 외에도 회사에서 작업할 때도 이런 작업물을 사전에 만들지 않고, 최신화 작업을 하지 않는다면 남는 게 생각보다 없다. 사실 ..
2주차 회고 항해 플러스를 시작한지 2주차가 지나갔다. 2주차의 주제는 클린 아키텍터에 대한 내용이다. 많은 관심이 있는 주제였고, 책도 구매하였지만 할 게 많아서 미루고만 있었다. 그래서 이번 챕터를 하면서 강제적으로 할 수있는 기회가 생기게 되었다. 아키텍터는 직접 경험하지 않고 이론적으론 접근하기 어렵다는 느낌을 받았다. 그래서 목요일 정도까지 패키지 구성에 대한 고민만 하게되었다. 물론 성격적으로 부딪치는 방식을 잘 못하기 때문에 그런것도 있었던 것 같다. 하지만 멘토링에서 어느정도 가이드를 받고 다른 조원들의 과제 코드도 보면서 어느정도 감을 잡았었다. 이번 과제에 대해서는 fail을 받았지만 추가적으로 진행을 하지 않을 예정이다. 다음 주제에서 내가 느낀 바를 적용해가는 방식으로 진행할 예정이..
1주차 과제는 TDD이다. 간단한 요구사항이 주어지고 TDD를 이용해 구현하는 것이다. TDD에 대한 학습은 그 전에도 한 적이 있어 무리없이 진행할 수 있었다. 과제 진행 과제는 기능의 Todo가 적힌 Controller와 메모리 DB(HashMap)을 활용한 샘플코드가 주어져있다. 아래와 같은 방식으로 개발을 진행하였다. 1. 간단한 시나리오를 작성한다. 2. Controller 부터 개발을 시작한다. 시나리오 기반으로 Controller의 Request, Response을 정한다. 3. Controller에서 사용할 Service를 구현하며, 기능 메서드를 작성한다. 3-1. 여기서 부터 TDD 사이클을 적용한다. 3-2. 주로 성공 케이스를 생각하며 간단한 테스트가 통과하게 테스트 로직을 작성하고..
·Framework/JPA
들어가기 앞서서 키워드 정리엔티티들은 대부분 다른 엔티티와의 연관관계를 가지고 있다. 예를 들면, 주문 엔티티는 상품 엔티티와 연관이 있고 상품 엔티티는 카테고리, 재고 등과 연관이 되어있다. ORM과 관계형 DB의 차이에서 정리한 적 있는데 객체와 테이블은 관계를 맺는 방식이 다르다. 객체는 참조를 통해 관계를 맺고 테이블은 외래키를 이용하여 관계를 맺는다.이 둘은 완전히 다른 특징을 가지기 때문에 이것을 ORM 맵핑으로 처리하는 것은 가장 어려운 부분이다. 이번 [연관관계 매핑 기초]를 통해 객체의 참조와 테이블의 외래 키를 매핑하는 방법을 학습하는 것이 목표이다. 핵심 키워드방향(Direction):  단방향과 양방향이 있다. 다중성(Multiplicity): 다대일(N:1), 일대..
# 지금까지의 회고 처음 백엔드 개발자로 일하는 때는 지속적인 발전을 위해 노력해야된다는 의미를 몰랐다. 연차가 지나가면서 매일 똑같은 업무에 익숙함 빠져있었고 그게 실력이라고 믿었던 것 같다. 하지만 이직을 위해 퇴사를 하고 준비를 하고 있는 과정에서 얼마나 내가 공부를 게을리 했다는 것을 알 수 있었다. 향해플러스 신청 전 부트캠프를 하나 진행했는데 실무를 경험하지 못한 개발자 지망생을 많이 만났고 그들의 수준을 보고 놀라게 되었다. 나도 더 이상 뒤쳐지지 않고 지속적으로 학습을 해야할 이유를 발견하게 되었다. # 항해 플러스 참여 계기 향해 플러스 참여 계기는 아무래도 일반 부트캠프는 특정 주제에 대해 깊숙히 학습하기가 어려웠다. 그러기 때문에 평소 관심 있던 TDD 나 CI/CD 등을 학습할 방법..
·Framework/JPA
기본 키 매핑 @Id 어노테이션만 사용하면 기본 키를 애플리케이션에서 직접 할당한다. 기본 키를 애플리케이션에서 직접 할당하는 방식 대신에 오라클의 시퀀스 오브젝트나 MySQL의 AUTO_INCREMENT 같은 데이터베이스가 생성해 주는 값을 이용하려면 어떻게 해야 할까? JPA에서 제공하는 데이터베이스 기본 키 생성 전략 JPA가 제공하는 DB 기본 키 할당 전략은 직접 할당 방식, 자동 생성 방식 두 가지가 있다. 직접 할당 방식은 애플리케이션이 기본 키를 직접 할당하는 방식이다. 자동 생성 방식은 대리키를 사용하는 방식으로 AUTO, IDENTITY, SEQUENCE, TABLE 네 가지 옵션이 있다. 해당 방식들은 DB에 의존되는 방식이다. package jakarta.persistence; pu..
JH_DEV77
'분류 전체보기' 카테고리의 글 목록 (3 Page)