들어가며
코드카타를 진행하면서 오랜만에 알고리즘 문제를 풀었다.
프로그래머스에서 코테는 처음이라 감도 익히고 워밍업 겸 쉬운 문제들로 풀었다.
내일부턴 좀 더 난이도 문제 있는 걸로 해서 코테도 준비해야겠다.
백준허브도 연동해서 깃허브에 레포도 만들어서 기록하는 중이다.
GitHub - seola12e/Programmers-Algorithm
Contribute to seola12e/Programmers-Algorithm development by creating an account on GitHub.
github.com
코드카타
"숫자 비교하기" 문제를 풀 때 아래와 같이 if문을 사용해서 답안을 제출했었다.
class Solution {
public int solution(int num1, int num2) {
if (num1 == num2) return 1;
else return -1;
}
}
다른 답들도 확인해봤는데 삼항 연산자로 푼 사람들도 있었다.

간단한 문제여도 얻을 게 많다..
Today I Learned!
1. 3 Layer Architecture

Spring에서는 각 역할별로 패키지와 클래스를 만들어서 관리함으로써 복잡한 코드를 보다 더 단순하고 간결하게 관리할 수 있게 한다.
- Controller : 클라이언트의 요청을 받아 Service단으로 요청을 전달함
- Service : '비즈니스 로직'에 해당함
- Repository : DB와 관련된 관리를 함
2. DI(의존성 주입) & IoC(제어의 역전)
강하게 결합되어 있는 코드들은 하나의 코드를 수정하려고 해도 엮여있는 수많은 코드들을 같이 수정해야 한다는 번거로움이 있다.
이는 DI(의존성 주입)을 통해 해결할 수 있다.
DI는 크게 3가지로 나뉠 수 있다.
- 필드에 직접 주입
- 메서드를 통한 주입
- 생성자를 통한 주입
IoC(제어의 역전)은 외부의 프레임워크나 라이브러리를 통해 제어 흐름을 대신하게 되는 것을 말하며, 이를 통해 코드의 유지보수성을 높일 수 있다. 주요 예시로는 지금 배우고 있는 Spring 프레임워크도 포함된다.
3. JPA
JPA(Java Persistence API) : 자바 ORM 기술에 대한 표준 명세
ORM(Object-Relational Mappint) : 객체와 DB의 관계를 매핑해주는 도구
4. 영속성 컨텍스트
Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간이다.
기능 1. 1차 캐시
영속성 컨텍스트는 내부적으로 캐시 저장소를 가지고 있어서 Entity들이 1차 캐시에 저장된다.
이를 통해 DB를 조회하는 횟수를 줄이고, 객체 동일성을 보장해준다.
기능 2. 쓰기 지연 저장소(ActionQueue)
JPA는 트랜잭션의 특징이 있다. 즉, SQL을 모아서 한번에 DB에 반영한다.
이철머 영속성 컨텍스트의 쓰기 지연 저장소를 통해 SQL을 모아두고, em.commit(); 이라는 Commit 명령어가 확인되었을 때 한번에 SQL을 DB에 반영한다.
기능 3. 변경 감지(Dirty Checking)
JPA는 영속성 컨텍스트에 Entity를 저장할 때 최초 상태를 저장한다.
트랜잭션 commit 후 em.flush(); 가 호출되면 Entity의 현재 상태와 저장한 최초 상태를 비교하여, 변경 내용이 있다면 Update SQL이 생성되고 DB에 반영된다.
마무리
영속성 컨텍스트는 여러 번 들어도 한번에 이해하기 힘든 내용 같다.
다음에 영속성 컨텍스트에 대해 조금 더 깊이 공부 후 따로 정리해 봐야겠다.
Spring 입문 강의도 저녁 일정을 끝내고 마저 완강해야겠다.
아는 내용들은 가볍게 들어서 숙련 강의도 오늘 내로 시작할 수 있게 해야겠다.
'내일배움캠프 > TIL' 카테고리의 다른 글
| [내일배움캠프] 260413 TIL #6 MSA (0) | 2026.04.13 |
|---|---|
| [내일배움캠프] 260410 TIL #5 (0) | 2026.04.10 |
| [내일배움캠프] 260409 TIL #4 엔티티 연관관계 (0) | 2026.04.09 |
| [내일배움캠프] 260408 TIL #3 스프링 시큐리티 (0) | 2026.04.08 |
| [내일배움캠프] 260406 TIL #1 오랜만에 스프링 (0) | 2026.04.06 |
