카테고리 없음
2024. 7. 31. (수) 슈퍼코딩 부트캠프 Day 52 / 주특기 6주차
태영9922
2024. 8. 1. 10:34
1. 스프링 프로젝트 기본 파일
![](https://blog.kakaocdn.net/dn/efafx3/btsITmE4pxN/JmJ0iZbZlgvsCbDTuSQFik/img.png)
![](https://blog.kakaocdn.net/dn/cbI8IB/btsIRL68iSi/f20fEtDqxX2qLwJInKDQp0/img.png)
![](https://blog.kakaocdn.net/dn/5y359/btsIQD22rb1/diDw8QAtsT7DHVdlfj95Zk/img.png)
2. Profile 설정하기
![](https://blog.kakaocdn.net/dn/bnyft9/btsIRfADYS5/0rNASK0DDmmlitL42Zhgj0/img.png)
3. 스프링 코드 아키텍쳐 3-layered
- 스프링 부트를 이용해서 코드를 짜려면 어떻게 짜야할까?
- 코드아키텍쳐 : 소프트웨어구조/구성 요소 조직적 정리 -> 코드 효율적 관리
![](https://blog.kakaocdn.net/dn/cmU1l7/btsIS7g32P4/cWB6K4icyaFtkJUyW66UA1/img.png)
- 어떤 코드 아키텍쳐들이 있을까?
![](https://blog.kakaocdn.net/dn/db7QGG/btsISVnq2HY/vgkTxooVvo1frJWjkCEJL0/img.png)
- 3-layer(3-tier) 아키텍쳐
![](https://blog.kakaocdn.net/dn/nrD2L/btsISrmOQ83/oBdsATOqNk1YnTQLwwmIM1/img.png)
- 3-layer 아키텍쳐를 사용하는 이유
![](https://blog.kakaocdn.net/dn/cBOpQI/btsITsryzW6/3jS6hQaYk2OzCavlq6K7p1/img.png)
![](https://blog.kakaocdn.net/dn/LqziD/btsIROv0TvD/xc5U9oYcWWiW7k3zVqAk31/img.png)
1. Web layer
![](https://blog.kakaocdn.net/dn/bRUCft/btsISUhINzS/u4T799IdKr91xkrHtlnb31/img.png)
- RestContorller와 Dispatcher Servlet
![](https://blog.kakaocdn.net/dn/Kr3Ht/btsIQHK81xG/hJrg0dwu3FdRb2CCpNA9ok/img.png)
- DTO(Data Transfer Object) : 데이터를 담아 전달하는 객체
![](https://blog.kakaocdn.net/dn/bF41p2/btsIQJu8ufy/VwS4LfTVDLGuf6Un73T61K/img.png)
![](https://blog.kakaocdn.net/dn/G5ynS/btsITB9PuWS/udIc26ok1a1Bt4HhhSqfB0/img.png)
- Jackson 라이브러리 : DTO <-> Json 직렬화 / 역직렬화 하는 라이브러리
- Jackson 라이브러리는 Getter를 보고 Getter가 있는 속성만 가져올 수 있음 -> 그래서 DTO에 getter를 추가해야함
![](https://blog.kakaocdn.net/dn/vJWPj/btsITtRwD9K/87TfHXHo9j1DGKidnk9OSk/img.png)
1. Dao layer(=Repository layer) 필수 개념
![](https://blog.kakaocdn.net/dn/lmPgg/btsIR2HzPMQ/ssvKJs9bQ0KnJYyM7Lhig0/img.png)
- Entity : 데이터베이스 테이블과 1대1 매핑되는 자바 객체
![](https://blog.kakaocdn.net/dn/c715U7/btsITD0TbSj/pl6sWlsOMaXrnJUosOT201/img.png)
- DTO와 Entity 분리해서 구현하기!
![](https://blog.kakaocdn.net/dn/4WMzp/btsIQ2IdY3T/NbJcFPU3uluTR5ghpSeWYK/img.png)
- Repository와 구현체
![](https://blog.kakaocdn.net/dn/cXHreq/btsIROpb9H2/j8pI6gsq1MkWlmOrv2kkKk/img.png)
- 어떤 기술을 쓸 것이냐? JDBC template -> 스프링에서 제공하는 JDBC를 사용한 DB 상호작용 도구
![](https://blog.kakaocdn.net/dn/d8Wq5q/btsITl7d2ck/Lu7ctp5XIAN0nRJXkfvpOK/img.png)
- DataSource : 스프링에서 DB와 커넥션을 관리하고 제공하는 Bean
![](https://blog.kakaocdn.net/dn/cFRaqq/btsIR1PryCW/onj3Z0qOXISz4tV9GASw70/img.png)
- Dao layer 인터페이스로 구현하는 이유
![](https://blog.kakaocdn.net/dn/k59G9/btsITmylL6d/5AbCKXSPusDHYSE9sLXtlk/img.png)
- 강한결합과 느슨한 결합
![](https://blog.kakaocdn.net/dn/ZPvTr/btsIS9eUKBz/klZoSqWWUXRjFDlpXLgFi1/img.png)