지원중인 프로젝트들을 보면, 회사의 중대하고 막대한 프로젝트들은 당연히 BE/FE 나누어 개발을 하지만아주 소소한, 조마난 플젝들은 굳이 BE/FE를 나누지 않고 여전히 JSP, Timeleaf등을 많이 사용하고 있다 그럼 백 코드를 @RestController를 써야할지, @Controller를 써야할지 여쭤보시는데대충 어디에 뭘 어떻게 쓴다만 알지 내부 구조를 자세하기 알진 못해서 알아봄 @Controller vs @RestController, 상황별 선택 가이드1. 두 응답의 목적은?- @Controller (View 기반) : 전통적인 Spring MVC의 컨트롤러. 주로 View(화면)을 반환하기 위해 사용한다. 메서드가 String을 반환하면 View Resolver가 해당 이름의 뷰 파일(J..
회사에서 올 해 프로젝트로 Java 8버전에서 21로 올리는 프로젝트가 뜬다고 한다Java8을 아직도 쓰는것도 놀라운데 이 프로젝트에 참여할 수도 있다는게 놀라움 Java 8에서 21로 : 현대적 자바로의 대도약1. Virtual Threads: 동시성 프로그래밍의 혁명 (Java 21)가장 파급력이 큰 변화다. 기존 자바의 스레드(PlatformThread)는 OS 스레드와 1:1로 매핑되어 생성 비용이 비싸고 개수도 제한적이었다.Java 8 : 요청 하나 당 스레드 하나를 할당하다보니, I/O 작업(DB 조회, API호출) 시 스레드가 차단되어 자원이 낭비되었음. 이를 해결하려면 복잡한 비동기 프로그래밍(WebFlux 등)이 강제되었다.Java 21 : 수백만 개의 Virtual Thread를 생성할..
면접 준비할 때 미리 준비 안 해가면 항상 질문 나오는 스프링 IoC와 DI실제로 프레임워크팀에서 백엔드 개발을 하면서 항상 고려해야 하는 개념이지만면접에서 물어보면 이게 그렇게 답변하기가 힘들드라외우는 방식 말고 이해할 수 있게 작성하는 글 ✔️ Spring의 IoC와 DI 개념스프링 프레임워크를 지탱하는 가장 거대한 뿌리, IoC(Inversion of Control)와 DI(Dependency Injection)에 대해 알아본다이 개념들을 제대로 이해하면 "왜 스프링을 써야 하는가?"에 대한 답을 찾을 수 있을 것이다. IoC (Inversion of Control, 제어의 역전) : 내가 직접 관리하던걸 프레임워크가 대신 관리해줌DI (Dependency Injection, 의존성 주입) : 필요..
Chapter3. 성능을 좌우하는 DB 설계와 쿼리 조회 트래픽을 고려한 인덱스 설계풀 스캔이 발생하지 않도록 하려면 조회 패턴을 기준으로 인덱스를 설계해야 한다.엘라스틱서치 같은 검색 엔진을 사용하면 DB를 사용하지 않고 검색 기능을 구현할 수 있다.인덱스는 단일 인덱스로도 사용 가능하고 필요하다면 복합 인덱스도 가능하다.ex) 단일인덱스 : userId만 인덱스로 사용ex) 복합인덱스 : (userId, activityDate)를 인덱스로 사용인덱스를 생성할 때는 선택도가 높은 칼럼을 골라야 한다.ps) 선택도? 인덱스에서 특정 칼럼의 고유한 값 비율 (선택도↑ = 해당 칼럼에 고유한 값이 많음)커버링 인덱스 : 특정 쿼리를 실행하는 데 필요한 칼럼을 모두 포함하는 인덱스ex) 아래 쿼리는 실제 데이..
- Total
- Today
- Yesterday
- 완탐
- BFS
- docker-compose
- DevOps
- 아이템61
- 완전탐색
- 조합
- Retrofit2
- subset
- 토큰기반인증
- 아이템59
- 이펙티브자바
- EffectiveJava
- OS
- IMAGE
- bruteforce
- 순열
- Container
- docker
- 백준
- dp
- 운영체제
- Java
- springboot
- 그래프탐색
- BOJ
- 알고리즘
- 아이템60
- cicd
- dfs
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |