[GDG Campus Korea] Whatever you make 2주차 회고록

박준형·2023년 8월 30일

📖이번주 진행했던 학습/개발 내용은 무엇이었나요📖

  • 결제 API 사용방법 학습 및 코드 구현 (부트페이)
  • GitHub Pull-Request 학습
  • AWS S3 버킷 생성 및 사용법 학습
  • 도커 spring + mariaDB 환경 구축 학습
  • 도메인 설계

이번주는 좋은 것과 나쁜 것이 무엇이 있었나요❓

이번주는 본격적인 개발 시작전에 프로젝트에 필요한 기술들을 학습했다. 그 과정에서 AWS S3, 결제 API인 부트페이, 도커 사용법에 대해서 알게됐다. 이전에는 이름만 알고있던 기술들을 이번 기회에 학습하게 되었고 실제로 사용할 수 있게 되어서 매우 기쁘다!!

아쉬운 점이라면 공식 문서와 여러 블로그에 쉽게 설명되어 있는데 처음 볼 때 이해하는데 시간이 많이 걸렸다. 아직 많이 부족하다고 생각이 들었다... 그리고 학습 내용을 기록하는 습관을 들여야겠다고 생각했다. 그때 당시에는 완벽하게 이해했다고 생각했는데 나중에 결국 다시 찾아보게 된다. 여기에 들이는 시간이 너무 아까웠다.

마지막으로 어이없는(?) 점은 DB column 이름을 mariaDB 예약어로 정해서 테이블이 계속 만들어지지 않았다. 이전 프로젝트에서는 테이블명을 예약어로 해서 시간을 많이 잡아먹었는데 이번에도 같은 실수를 해버렸다...ㅎㅎ 근데 이번엔 10분만에 알아챘다! 역시 실수를 하면서 배워야 강해지는구나 깨닫게 되었다.


가장 고민을 했던 부분은 무엇이었나요❓

도메인 관련한 코드를 작성하면서 연관관계를 신경쓰면서 작업을 했다. 아래는 예시 코드이다.

@Entity
@ToString
@Getter @Setter
public class Coordinator {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="coordinator_id")
    private Long id;

    @OneToMany(mappedBy = "coordinator", cascade = CascadeType.ALL)
    private List<Board> boards = new ArrayList<>();

    //==연관관계 메서드==//
    public void addBoard(Board board) {
        boards.add(board);
        board.setCoordinator(this);
    }
}
@Entity
@ToString
@Getter @Setter
public class Board {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "board_id")
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "coordinator_id")
    private Coordinator coordinator;    
}

Coordinator와 Board는 1:N 관계이다. 한명의 코디네이터가 여러개의 게시물을 가진다는 뜻이다.
이 연관관계의 주인은 Board 객체가 된다. (보통 외래키를 가지는 쪽이 주인이 된다.)
그래서 Coordinator 객체에 Board가 추가될 때 boards.add를 해서 Board 객체를 담아주고 Board 객체에는 현재 Coordinator 객체와 연관관계에 있다고 알려주어야 한다!


아쉬운 부분을 개선하기 위해서 필요한 것은 무엇인가요❓

이제부터는 학습한 내용을 조금이라도 블로그를 통해서 기록해야겠다고 생각했다. 블로그에 쓴다고 완벽하게 머리에 들어오진 않지만 작성하면서 공부도 되고 나중에 찾아볼 때도 내가 이해하기 쉽게 작성할테니까 다른 사람이 쓴 글보다는 더 나을거 같다고 생각한다.


다음주는 어떻게 보낼 예정인가요❓

  • 도커를 활용하여 프론트엔드 팀원들에게 같은 서버 환경 제공 (spring + mariaDB)
  • spring JPA에 대해서 더 공부하기
  • 도메인 작업 마무리

profile
으쌰 으쌰

1개의 댓글

comment-user-thumbnail
2023년 9월 10일

우와 백엔드 코드 어질어질하네요..!!! 저도 이번 프로젝트를 하면서 백엔드 지식들도 조금이나마 알고가는 것 같아서 좋네요! 다음주도 화이팅이여요~.~

답글 달기