목표 달성 여부
✅ 스터디 월, 수, 금 잘 진행할 것.
✅ 힘들어도 TIL 비공개라도 써 볼 것. (스프링에 대해서 요약하면 좋을 것 같다.)
이번 주 내가 한 것
1. 스프링 강의 듣기
JDBC(Java Database Connectivity)
DB에 접근할 수 있도록 Java에서 제공하는 API, JDBC에 연결해야 하는 DB의 JDBC 드라이버를 제공하면 DB 연결 로직(Connection, SQL 요청, 결과 응답)을 변경할 필요 없이 DB 변경 가능.
3 Layer Architecture
Controller
클라이언트의 요청을 받아 요청에 대한 로직 처리를 Service에 전달. Request 데이터가 있다면 같이 전달
Service에서 처리 완료된 결과를 클라이언트에게 응답
Service
사용자의 요구사항을 처리(비즈니스 로직)
DB 저장 및 조회가 필요할 때는 Repository에게 요청
현업에서는 서비스 코드가 계속 커지고 있다.
Repository
DB 관리
DB CRUD 작업을 처리
IoC(제어의 역전)와 DI(의존성 주입)
의존성 : 결합의 정도
주입 : 한 클래스에서 필요한 클래스를 객체화 시켜 사용하는 것이 아니라 필요한 클래스를 여러 방법(필드, 메서드, 생성자에 주입)으로 해당 객체에 직접 전달하는 것.
제어의 역전 : 주입으로 인해 제어의 방향이 반대로 역전되는 것
IoC Container와 Bean
주입을 하려고 할 때, 필요한 클래스를 해당 객체에 직접 전달한다고 했는데, 이 때 필요한 클래스를 프로그램이 Run될 때, Spring에서 알아서 생성하게끔 하는데 이 때, Spring에서 이렇게 관리하는 객체를 빈(Bean)이라 하고, Spring IoC 컨테이너는 'Bean'을 모아둔 컨테이너이다.
3 Layer Annotation
Controller, Service, Repository의 역할로 구분된 클래스들을 Bean으로 등록할 때 해당 Bean 클래스의 역할을 명시하기 위해 사용된다.(@Controller, @RestController, @Service, @Repository)
JPA CORE
ORM : Object-Relational Mapping, 객체 지향 언어(자바, 파이썬)와, 관계형 데이터베이스(H2, MySQL)의 매핑.
JPA : Java Persistence API, 자바 ORM 기술에 대한 표준 명세, 애플리케이션과 JDBC 사이에서 동작되고 있으며, DB연결 과정을 직접 개발하지 않아도 자동으로 처리해준다. 객체를 통해 간접적으로 DB 데이터를 다룰 수 있기 때문에 매우 쉽게 DB 작업을 처리할 수 있다.
하이버네이트 : JPA를 구현한 프레임워크 중 사실상 표준(기업간 치열한 경쟁을 통해 시장에서 결정되는 비공식적 표준). 스프링 부트에서는 기본적으로 '하이버네이트' 구현체를 사용중.
2. 프로그래머스 lv.1 다 풀었다!!

3. 스터디 진행
이번에는 스터디원의 제안으로 프로그래머스 Lv.1 공원 산책이라는 우리가 평소 풀어왔던 문제들보다 다소 어려운 문제를 다 같이 풀어보고 발표 자료도 각자 준비해 보는 식으로 한 번 진행이 되었다. 같은 문제를 스터디원들은 어떤 식으로 접근했는지, 풀리지 않았을 때는 어떻게 했는지, 어떤 로직으로 접근했는지 알 수 있었고, 다들 힘들게 문제를 푼 경험에 대해 공유하는 과정이 흥미로웠다!
이번 경험이 다들 흥미로워서 2주에 한 번쯤 팀 프로젝트가 너무 빡세지 않을 때 어려운 문제를 하나씩 풀어보기로 하였다! 평소에는 내가 문제를 정하여 다들 문제를 풀어오는 식이었는데 이런 식으로 의견이 모여 스터디가 잘 진행되는 것 같아 너무 기쁘다.
회고
스프링은 어렵고 빨리 결과가 나오지 않아 나도 모르게 더 흥미를 느낄 수 있는 알고리즘 문제 푸는 거로 도망을 친 것 같다. 지금 하고 있는 일에 최선을 다할 필요가 있다고 느끼고, 다음 주는 정말 스프링 강의를 열심히 듣고, 요약도 해봐야겠다. 다소 틀린 부분이 있더라도 요약해보기!! 그래도 저번 주 보다는 강의를 열심히 들은 것 같다.
다음 주는 강의를 최대할 빨리 듣고, 과제를 해보면서 다시 강의를 복습하는 느낌으로 진행을 해봐야겠다.
다음 주 목표
✔ 스프링 기본, 숙련 강의 다 듣고 과제 잘 하기
✔ 기존에 냈던 스프링 과제 리팩토링 햅보기
✔ 스터디 진행 잘하기
✔ TIL 비공개라도 기록 잘 해놓기(주말에 수정 하면 된다.)
✔ 자바의 정석 ch.12 공부
✔ 프로그래머스 lv.2 하루에 1개씩 풀고 잔디심기
'SPARTA Project > WIL' 카테고리의 다른 글
[WIL] 230703 ~ 230709 (0) | 2023.07.09 |
---|---|
[WIL] 230626 ~ 230702 (0) | 2023.07.02 |
[WIL] 230612 ~ 230618 (0) | 2023.06.19 |
[WIL] 230605 ~ 230611 (1) | 2023.06.11 |
[WIL] 230529 ~ 230604 (4) | 2023.06.05 |