본문 바로가기

전체 글315

2024 하계 모각코 3회차 목표 : 카카오테크캠퍼스에서 배운 JPA매핑 부분에서 이해가 잘 안되는 부분을 JPA 프로그래밍 책을 통해서 더 깊게 이해한다. 참고!객체는 파스칼 표기법(Line, Station,LineStation)을 따르고, 테이블은 스네이크 표기법을 따른다(line, station, line_station) 단방향 : 회원 -> 팀, 팀 -> 회원 둘 중 한 쪽만 참조하는 것양방향 : 회원 -> 팀, 팀 -> 회원 둘 다 참조하는 것 방향은 객체관계에서만 존재하고, 테이블 관계는 항상 양방향이다. 다중성다대일 일대다 일대일, 다대다가 있다. 연관관계 주인객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야한다. 단방향 연관관계 다대일 단방향 관계 회원과 팀이 있다.회원은 하나의 팀에만 소속될 수 있다.회원과 .. 2024. 7. 16.
[카카오테크캠퍼스] JPA 연관관계 매핑 참고!객체는 파스칼 표기법(Line, Station,LineStation)을 따르고, 테이블은 스네이크 표기법을 따른다(line, station, line_station) 단방향 : 회원 -> 팀, 팀 -> 회원 둘 중 한 쪽만 참조하는 것양방향 : 회원 -> 팀, 팀 -> 회원 둘 다 참조하는 것 방향은 객체관계에서만 존재하고, 테이블 관계는 항상 양방향이다. 다중성다대일 일대다 일대일, 다대다가 있다. 연관관계 주인객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야한다. 단방향 연관관계 다대일 단방향 관계 회원과 팀이 있다.회원은 하나의 팀에만 소속될 수 있다.회원과 팀은 다대일 관계이다. 객체 연관관계회원 객체는 Member.team필드를 통해 팀을 알 수 있지만, 반대로 팀은 회원을 알 수 .. 2024. 7. 16.
2024 하계 모각코 2회차 목표 : 코드리뷰 받은 내용을 정리하고 JPA에 대해서 배운 내용과 더 공부한 내용을 정리한다. 1. 페이지 응답을 담당하는 핸들러와 클라이언트의 요청을 받는 핸들러를 분리하자처음에는 한 엔티티에 대한 컨트롤러가 하나여야한다고 생각했어서 어떤 것을 고쳐야하는지 잘 몰랐었는데, 팀원분들께 물어보니까 컨트롤러를 2개 만들어도 된다고 하셨다. 그래서 @RestController을 쓰는 컨트롤러, @Controller을 쓰는 컨트롤러 이렇게 2가지를 만들었다.@Controller@RequestMapping("/menus/view")public class MenuController { private final MenuService menuService; public MenuController(MenuS.. 2024. 7. 13.
2024 하계 모각코 1회차 목표 : 카카오테크캠퍼스에서 배운 JDBC 지식을 정리하고, 코드리뷰 내용을 정리한다. 이제까지는 데이터베이스가 따로 없어서 해시맵에 저장해 두었었는데, 앱이 실용적으로 수행되려면 시스템을 껐다 켜도 데이터가 그대로여야한다.  데이터베이스는 데이터를 관리하기 위한 별도의 공간이고, 데이터베이스를 관리하고, 운영하는 소프트웨어를 DBMS라고 한다. DBMS에는 MySQL, 오라클 등이 있다. JDBC JDBC는 데이터베이스에 접속할 수 있도록 도와주는 자바 API이다.DBMS마다 접근 로직이 다르다. JDBC는 접근로직을 구현체로부터 분리하여 디비에 따라 코드 수정을 할 필요가 없도록 만들어준다. JDBC 구현하는 법 1. 의존성 주입implementation 'org.springframework.boot.. 2024. 7. 13.
[카카오테크캠퍼스] JPA 엔티티 매핑, 영속성 컨텍스트 JDBC는 쿼리문을 써주고, Repository를 직접 써줘야했지만, JPA는 이를 훨씬 간편하게 구현할 수 있게 해준다. SQL을 직접 다룰 때의 문제점새로운 필드가 추가되면 관련된 SQL을 다 수정해야한다. 또한 개발자들이 엔티티를 신뢰하고 사용할 수 없다. 스키마 생성하는 방법 application.properties에 spring.jpa.hibernate.ddl-auto=create이를 추가한다. create: 기존 테이블 삭제 후 다시 생성 (DROP + CREATE)create-drop: create와 같으나 종료시점에 테이블 DROPupdate: 변경된 부분만 반영 (운영 DB에 사용하면 안됌)validate: entity와 table이 정상 매핑되었는지만 확인none: 사용하지 않음  @E.. 2024. 7. 13.
[카카오테크캠퍼스] 2주차 과제 코드리뷰 정리 1. 페이지 응답을 담당하는 핸들러와 클라이언트의 요청을 받는 핸들러를 분리하자처음에는 한 엔티티에 대한 컨트롤러가 하나여야한다고 생각했어서 어떤 것을 고쳐야하는지 잘 몰랐었는데, 팀원분들께 물어보니까 컨트롤러를 2개 만들어도 된다고 하셨다. 그래서 @RestController을 쓰는 컨트롤러, @Controller을 쓰는 컨트롤러 이렇게 2가지를 만들었다.@Controller@RequestMapping("/menus/view")public class MenuController { private final MenuService menuService; public MenuController(MenuService menuService) { this.menuService = menuSe.. 2024. 7. 11.