Backend

오픈소스 두 번째 기여해보기

Armeria gRPC 서버에서 요청·응답 직렬화를 이벤트 루프 밖으로 옮긴 이야기

2026.10.01·10분
Infra

Terraform 도입기

회사 인프라를 코드로 선언적 설정하기

2026.08.09·8분
Backend

오픈소스 첫 기여해보기

Armeria에 비동기 예외처리 핸들러 추가

2026.05.17·8분
CS

TPR vs EventLoop

Thread-per-Request vs EventLoop의 근본 차이 파헤치기

2026.04.05·6분
Backend

가독성 좋은 코드란?

주관을 가진 코드를 작성하게 되는 과정

2026.03.30·7분
Career

두 번째 회사를 마무리하며

세 번째 회사로...

2026.03.07·5분
Career

2025 회고록

1년차 개발자 회고록

2026.02.03·3분
Backend

통계에서 Redis 활용하기

실시간 집계를 위한 통계 아키텍처 설계 2편

2026.01.25·9분
Backend

레거시 시스템 위에서 아키텍처 설계하기

이직 후 첫 실전 투입

2025.12.28·8분
Career

2025 하반기 면접 회고록

열정을 잃지 말자

2025.12.04·2분
Career

두 번째 회사 입사 후기

새로운 회사로

2025.12.03·2분
Algorithm

2026 카카오 코테 1차 & 2차 리뷰

1차 & 2차 코테 리뷰

2025.11.01·4분
Career

첫 SI 회사 회고록

10개월간의 회사 생활을 마치며

2025.10.22·3분
CS

OOP vs 함수형 프로그래밍

상태 폭발에 대해서 아시나요?

2025.09.28·8분
Algorithm

codeforce vs leetcode vs 백준

알고리즘을 잘하기 위해선 어떻게 해야할까

2025.09.21·3분
CS

함수형 프로그래밍이란 무엇일까

목디스크랑 대상포진은 조금 힘드네..?

2025.09.09·6분
Career

왜 스타트업은 Node.js를 많이 쓸까?

벌써 하반기가 시작됐다구요?

2025.08.31·4분
Backend

프로젝트 TDD 도입기

Kotlin 프로젝트에 TDD 도입해보기

2025.08.17·6분
CS

Java Virtual Thread vs Coroutine

Java 21의 가상스레드와 코루틴 중에 뭐가 더 좋을까?

2025.08.03·6분
CS

동기, 비동기 vs 블로킹, 논블로킹

멀티 태스킹 용어 완벽 마스터하기

2025.07.27·5분
Backend

22초 검색 2초로 만들기 (Elasticsearch)

Elasticsearch 현업에 도입하기

2025.07.15·7분
Backend

자원이 무한하다면 DB커넥션 풀은 필요없을까?

DB 커넥션 풀이 필요한 이유

2025.06.24·4분
Career

2025 상반기 회고 및 정리

2025년 상반기 회고 문답

2025.06.16·5분
Backend

DispatcherServlet과 HandlerAdapter의 동작 원리

디버깅 하려면 흐름정도는 알아야지

2025.06.09·5분
Backend

Web, Servlet, Spring의 관계

DispatcherServlet이 어디서 동작하는지 아시나요?

2025.05.31·4분
Backend

Maven과 Gradle은 뭐가 다를까?

빌드 도구 차이점 마스터하기

2025.05.22·2분
CS

N+1 문제 마스터하기

JPA 마스터에 한걸음 다가서기

2025.05.13·12분
Infra

Discord가 수조 개의 메세지를 인덱싱하는 방법

쿠버네티스를 쓰는데는 이유가 있다.

2025.05.07·7분
Backend

k6로 Cache hit 측정하기

번아웃은 어떻게 탈출하는걸까

2025.05.01·11분
CS

저지연 GC 알고리즘을 알아보자

산출물 지옥 탈출했으면 공부해야지?

2025.04.25·13분
CS

RESTful API 마스터하기

당신은 REST API를 완벽하게 알고있습니까?

2025.04.18·12분
CS

메모리 관리 최적화 기법 알아보기

SI의 현실을 아는사람: ㄱ-

2025.04.13·10분
Backend

DB모델링과 최적화보다 중요한 것

SI에서 물경력이 되지 않기 위한 노력이 오히려 독이 되었다?

2025.04.08·4분
CS

JVM의 메모리 구조와 가비지 컬렉션 기본 원리

몸살도 내 공부를 막을순 없다.

2025.04.04·9분
CS

스택이 매우 커질 수 있다면 힙은 불필요할까

잠을 깨게 해준 유튜브 한편

2025.03.31·6분
Backend

1억 4천만행 데이터 처리 시스템 구축하기 2편

이 맛에 개발자합니다

2025.03.28·6분
Backend

1억 4천만행 데이터 처리 시스템 구축하기 1편

1억 4천만 * 365 * 24 * 12 == ???

2025.03.25·7분
Career

2025 팀네이버 코딩테스트 후기

동기부여 100000%

2025.03.22·1분
Backend

클래스 정의서 문서화 자동화하기

실행 한번으로 문서하나 자동화?

2025.03.18·8분
Backend

세션 관리 전략: 세션 vs JWT

대기업들은 세션과 JWT를 어떻게 활용하고 있을까?

2025.03.02·10분
Backend

왜 나의 @AuthenticationPrincipal은 동작하지 않을까

Spring Security 설정 문제로 엿본 내부 동작 원리

2025.02.25·4분
Backend

현업에서 SOLID 지키면서 개발하기

생산성과 가독성의 협의점 찾기

2025.02.18·3분
Backend

IDE 하나 바꿨다가 서블릿 컨테이너까지 파헤치게 된 이야기

이클립스는 우렁각시??

2025.02.09·3분
CS

데이터베이스 정규화와 비정규화에 대한 고찰

데이터 모델링을 하며 생긴 의문점 해소

2025.02.03·3분
Backend

동시성과 순서보장을 둘 다 잡을 순 없을까?

하나만 잡기도 어려운데 두개는 어떻게 잡지

2025.01.16·3분
Backend

eGov Framework의 Validation 시스템 이해하기

신입 연수 마지막주차를 보내며 생긴 의문점 해소

2025.01.11·4분
Backend

공통코드 테이블 설계를 어떻게 해야할까?

신입 연수 2주차를 보내며 생긴 의문점 해소

2024.12.29·2분
Career

SSAFY 11기 2학기 회고록

1년을 끝마치며

2024.12.12·2분
CS

운영체제에서는 어떤 알고리즘이 쓰일까?

알고리즘을 공부하면서 생긴 의문점 해소하기

2024.11.08·5분
Algorithm

소프티어 7726: 나무 섭지

자율 프로젝트 기간에 준비하는 코딩테스트

2024.11.01·3분
Career

삼성 SW 역량평가 B형 합격 후기

SSAFY 버킷리스트 달성 후기

2024.10.15·1분
Algorithm

백준 1194: 달이 차오른다, 가자.

알고리즘 재활훈련 3주차

2024.09.30·2분
Algorithm

백준 2151: 거울 설치

알고리즘 재활 훈련 2주차

2024.09.29·2분
CS

헤드 오브 라인 블로킹(HOL Blocking)

오랜만에 돌아온 CS 공부

2024.09.22·2분
Algorithm

백준 2295: 세 수의 합

알고리즘 재활훈련 1주차

2024.09.15·1분
Algorithm

백준 1563: 개근상

알고리즘 감각 되살리기 프로젝트 1주차

2024.09.14·1분
CS

HTTP는 어떻게 변화했을까?

특화 프로젝트 들어가기 전 CS 공부

2024.08.25·4분
Algorithm

백준 2922: 즐거운 단어

알고리즘 재활 훈련 2일차

2024.08.22·2분
Algorithm

백준 21942: 부품 대여장

공통 프로젝트 이후 다시 시작한 알고리즘 재활 훈련

2024.08.21·1분
Backend

SSAFY 11기 공통 프로젝트 : 트러블 슈팅

공통 프로젝트를 진행하면서 생긴 오류를 정리해보자

2024.07.31·2분
Backend

Mybatis VS JPA

Mybatis와 JPA는 무슨 차이가 있을까?

2024.07.11·2분
Backend

Stream을 사용할 때 NullPointerException을 피하는 방법

Spring 프로젝트 도중 생긴 오류의 트러블 슈팅

2024.07.03·1분
Career

SSAFY 11기 1학기 회고록

2024.01 ~ 2024.06

2024.06.30·4분
Algorithm

백준 16946 : 벽 부수고 이동하기 4

문제 링크문제의 조건을 보면 간단한 BFS같이 보이지만, 실제로 구현하면 시간초과가 난다.안에서 문제의 조건을 미리 계산하고 중복을 제거하는 자료구조를 사용해야만 시간초과를 해결 할 수 있는 문제였다!BFSO(N^2)해결 로직은 생각했지만, 중복 제거를 구현하는데 H

2024.06.27·2분
Algorithm

백준 7579 : 앱

문제 링크 DP로 결과값을 배낭문제처럼 분할해서 접근했다!Memory의 범위가 매우 넓고, 문제 메모리 조건이 128MB로 작기 때문에, cost를 기준으로 잡고 DP 공식을 만들었다!DPO(N)그리디 접근방식에서 틀린걸 깨닫고 DP 방식으로 다시 접근했다없을 것 같다

2024.06.26·1분
Algorithm

백준 15681 : 트리와 쿼리

문제 링크인접 리스트를 순회하는 방식만 구현하면 된다고 생각해서, DFS나 BFS로 접근했다DFSO(V+E)처음에는 메모리를 고려하지 않고 BFS를 사용했다가 메모리 초과가 난 이후에 DFS로 바꿨다!DP도 가능할 것 같다!

2024.06.25·1분
Backend

4week_spring : 3주차 리뷰

1, 2주차에 기능 구현 못한 부분 완성하기OAuth2 로그인 및 소셜 로그인 연동 (원하는 소셜 로그인 기능 하나 + OAuth2를 사용한 사용자 인증 구현)파일 업로드 및 다운로드 기능 구현 (Spring Boot의 MultipartFile 사용)구현 성공 : 카

2024.06.24·1분
Algorithm

4week_spring : 3주차 트러블 슈팅

카카오 로그인 인가코드 발급후, 토큰 요청시 401 ERROR 발생공식문서를 찾아보니 클라이언트 시크릿을 적용하고, 시크릿 코드를 포함하지 않으면 나는 오류라는 것을 발견 하지만 나는 시크릿 코드를 활성화 하지 않음이전에는 Json 형식으로 데이터를 보내야 했지만, 최

2024.06.23·1분
Algorithm

백준 2239 : 스도쿠

문제 링크처음엔 DFS 재귀 방식으로 접근했는데 계속 값 초기화 부분에서 오류가 났다난이도를 보고 쉬운줄 알고 접근했는데, 시간안에 풀지 못했다...결국 이번 문제는 정답을 참고해서 풀었고, 다음에 다시 한번 풀기로 했다.백트래킹최악 O(9^N^2)추후 다시 풀어볼 예

2024.06.23·2분
Backend

4week_spring : 2주차 리뷰

세션 인증 → 토큰 인증(JWT) 변경 및 Refresh Token 적용 + Spring SecurityResponseEntity 이용해서 응답 데이터 및 Http Status Code 까지 적절한 응답 할 수 있도록 변경@ExceptionHandler 사용해서 전역

2024.06.22·1분
Backend

4week_spring : 2주차 트러블 슈팅

Jwt 토큰을 요청 헤더에 포함시키고, 이를 통해 유저네임을 찾을 때, 이름이 아닌 ID로 찾는 문제 발생ID로 찾는 부분을 이름으로 찾도록 변경오류 없이 정상 작동완료코드의 일관성에 대한 중요성을 학습했다!오류 코드의 해석도 중요하다는걸 알게되었다.DTO를 적용했을

2024.06.22·1분
Algorithm

백준 1806: 부분합

문제 링크범위를 보니 N^2 이하의 알고리즘을 사용해야하고, 가장 짧은 것의 길이만 구하면 되므로 슬라이딩 윈도우를 사용해야겠다고 생각했다.슬라이딩 윈도우O(N)범위 설정을 잘못해서 처음에 오답이 났었다.없을 것 같다!

2024.06.22·1분
Algorithm

백준 2473: 세 용액

문제 링크어제 풀었던 투 포인터의 응용 문제로,N의 범위를 보니 포인터를 하나 더 늘리기만 하면 되겠다고 생각했다!투 포인터O(N^2)없다!없을 것 같다!

2024.06.21·1분
Algorithm

백준 2467: 용액

문제 링크이미 정렬이 되어있는 용액의 최소 절댓값을 구하는 문제로, 투 포인터를 사용하면 되겠다고 생각했다!투 포인터O(N)처음에 초기값을 MAXVALUE로 안해줘서 틀렸는데 바로 고쳐서 맞았다!없을 것 같다

2024.06.20·1분
Algorithm

백준 1799: 비숍

문제 링크처음에는 제한시간이 10초 + 모든 공간을 다 봐야한다고 생각해서 DFS로 접근했다.또한 비숍은 바로 옆의 칸 체스판의 흰색과 검은색칸은 가지 못하므로 2가지 경우로 나누어서DFS를 돌리면 되겠다고 생각했다!깊이 우선 탐색 DFSO(N^2)2가지 경우로 처음에

2024.06.19·2분
Algorithm

백준 20040: 사이클 게임

문제 링크사이클 유무를 판단해야하므로 Union Find로 그룹화가 되었는지 확인하면 된다! 유니온 파인드 Union FindO(N+M) V+E한번에 풀었다!없을 것 같다!

2024.06.19·1분
Algorithm

백준 2623: 음악프로그램

문제 링크주어진 좌표 가수 연결 정보의 순서를 검사해서 출력하면 되므로 그래프의 순서를 탐색하는 알고리즘인 위상 정렬을 사용했다!위상정렬O(V+E)간만에 한번에 맞아서 좋다!없을 것 같다!

2024.06.17·2분
Algorithm

백준 1202: 보석 도둑

문제 링크먼저 가장 많이 가져갈 수 있는 가격을 구해야하고, 조건에 맞추어 가방 무게를 검사해야하는 문제다.따라서 처음에는 가방을 크기순으로 내림차순 정렬, 보석은 무게순으로 내림차순 정렬한 이후들어갈 수 있는 최대한의 가치를 가진 보석을 pq 우선순위큐로 골라서 합산

2024.06.16·1분
Algorithm

백준 1647: 도시 분할 계획

문제 링크그룹화를보고 일반적인 MST에 마지막 한단계만 더 생각하면 될 것 같았다!MST 최소신장트리O(NlogN)Union할때 find 되지 않은 값을 합쳐줘서 틀리는 문제가 있었다..바로 수정해서 통과했다!없을 것 같다!

2024.06.15·2분
Algorithm

백준 1562: 계단수

문제 링크이 문제는 풀이를 떠올리지 못해서 정답을 참고했다...처음에 DP유형의 문제인건 눈치챘지만, 어떤식으로 로직을 짜야할지 감이 오지 않았다.풀이를 공부하던 도중에, 비트마스크 알고리즘에 대해서 알게되었다.다행히 어느정도 이해하게 되어서 다음에 한번 더 풀어보기로

2024.06.14·1분
CS

HashTable과 HashMap의 차이점

자료구조와 자바를 공부하다보면 우리는 Hash, HashTable, HashMap 등의 이름을 마주하게 된다.하지만 자바를 컬렉션에 대해서 더 깊게 공부하다보면 HashTable과 HashMap은 하는 기능은 똑같은 거 같은데 무슨 차이가 있지? 라는 생각이 들게 된다

2024.06.13·3분
Algorithm

백준 14938: 서강그라운드

문제 링크기본 최단경로라서 다익스트라를 떠올렸다.근데 이미 BFS로 구현중에 떠올라서 로직만 조금 수정했다..다익스트라 O(V+E)처음에 문제를 잘못읽어서 갱신 방법을 잘못 설정했었다...없을 것 같다!

2024.06.13·2분
Algorithm

백준 2096: 내려가기

문제 링크처음에는 일반적인 브루트포스인줄 알고 DFS, 또는 BFS를 사용하려 했지만입력 범위와 메모리 조건을 보니 일반적인 완전탐색으로는 안될 것 같았다.따라서 DP로 접근하기로 했다!DP 동적 프로그래밍O(N)없다!어떻게 로직을 잘 자면 메모리를 더 줄일 수 있을거

2024.06.12·2분
Backend

4week_spring: 1주차 리뷰

게시글 작성제목내용게시글 수정제목내용게시글 삭제게시글 조회제목, 작성자, 내용, 조회 수, 추천 수, 비 추천 수, 댓글 수, 작성 시간댓글 목록작성자, 내용, 작성 시간, 추천 수, 비 추천 수대댓글게시글 목록 조회제목, 작성자, 조회 수, 추천 수, 작성 시간게시글

2024.06.11·1분
Backend

4week_spring : 1주차 트러블 슈팅

시큐리티를 사용한 로그인을 구현할때, SecurityConfig를 설정해줘도, 로그인을 실패할시, Default Url 로 요청을 계속해서 보내는 문제로그인이 실패할때, auth/loginForm로 이동하는 것을 보고 failureUrl 설정하지만 이래도 해결되지 않았

2024.06.11·2분
Backend

미니프로젝트 : 4week_spring

6월은 싸피 11기의 1학기 방학기간이다.중간에 잡페어 기간으로 자소서, 면접 준비를 도와주지만...대부분 2학기에 필요한 프레임워크 및 언어를 공부해 프로젝트에 대비한다.그래서 나도 아는 형과 같이 미니 기능구현 프로젝트를 해보기로 했다!한 주차마다 월요일에 요구사항

2024.06.11·1분
Algorithm

백준 1043: 거짓말

문제 링크파티의 수와 거짓말을 판단해야하므로, 그룹화 Union Find 알고리즘을 사용하면 되겠다고 생각했다!유니온 파인드 Union FindO(NlogN)처음에 아무생각없이 find값들을 서로 비교하지 않고, 초기값과 find값을 비교해서 틀리는 문제가 있었다.그룹

2024.06.11·2분
Algorithm

백준 1753: 최단 경로

문제 링크일반적인 최단 경로 문제이므로 다익스트라를 사용했다!다익스트라 DijkstraO(V+E)pq에 넣을때 최적화된 값을 넣지 않아서 시간초과가 나는 오류가 있었다...고쳐서 바로 해결했다!이미 pq를 사용해서 없을 것 같다!

2024.06.10·2분
Algorithm

백준 2448: 별 찍기-11

문제 링크먼저 구간별로 반복되는 형태를 찾아 반복되는 로직을 정했다.찾다보니 삼각형이 반복되는 것을 알 수 있었고, 그 좌표의 규칙을 찾아재귀로 반복시켰다!재귀O(N^2)처음 로직을 떠올리는게 오래걸렸다..없을 것 같다!

2024.06.09·1분
Algorithm

백준 15311: 약 팔기

문제 링크100만 까지의 수를 특정 숫자의 합으로 나타내는 문제이다.처음에는 범위가 2000까지여서 1부터 2000까지 전부 더해봤는데 100만이 넘었다.그래서 1부터 차례대로 넣고 뽑는 식으로 구현할려 했는데, 연속된 범위가 발목을 잡았다..100만까지의 수를 표현하

2024.06.08·1분
Algorithm

백준 5430: AC

문제 링크조건에 맞추어 문자열을 파싱해서 출력한다!구현O(N)처음에는 아무생각없이 일반 구현인 줄 알고 회전 명령이 들어오는대로 처리를 했더니 시간초과가 났다...일괄적으로 명령을 받아 범위만 확정지은 후에 파싱하는 방법으로 해결했다!또한 O(N)의 시간 복잡도를 유지

2024.06.08·1분
Algorithm

백준 1884: 고속도로

문제 링크 created : 2024-06-07 문제 떠올린 접근 방식, 과정 시작점이 정해진 최단경로이므로 다익스트라를 사용한다! 하지만 조건이 두개 이상이기 때문에 한가지 기준에 따른 다익스트라를 돌린후, 조건에 맞추어 순회해서 정답을 구한다. 알고리즘과 판

2024.06.07·2분
Algorithm

백준 1938: 통나무 옮기기

문제 링크최단경로이므로 BFS에 기본 로직들에 맞춰 조건을 구현했다.BFS최단경로니까!O(N^2)방문처리를 한 조건에 안해줘서 메모리 초과가 났었다.바로 추가해줘서 해결했다!더 깔끔하게 리팩토링은 가능할 것 같다..

2024.06.06·3분
CS

해시 테이블이란?

해시 테이블 Key, Value로 데이터를 저장하는 자료 구조 중 하나로 데이터를 빠르게 검색할 수 있는 자료구조를 말한다! 검색속도가 빠른 이유는, 내부적으로 배열을 사용해서 데이터를 저장하기 때문이다. 각각의 Key 값에 해시 함수를 적용해 배열의 고유한 ind

2024.06.06·2분
Algorithm

백준 26606: 이게 게임이냐?

문제 링크기본 로직은 BFS로 pq에 카드 게임 진행상황과 현재 카드 소비수를 같이 넣어서, 카드 소비수를 내림차순 기준으로 뽑아내고, 카드를 넣을 수 있는 모든 곳의 수를 탐색해서 게임 성공 유무를 판단한다.BFSO(NlogN)처음에 구현할 때는 손패를 고려안해서

2024.06.05·2분
Algorithm

백준 1914: 하노이 탑

문제 링크N개의 하노이탑을 옮기려면 N-1개의 탑을 빈 공간에 옮긴후, 제일 큰 탑을 목적지로 이동 후, 다시 빈공간에서 목적지로 N-1개를 옮겨야한다.이는 N 개의 하노이 탑을 옮기기 위해서 N-1개의 하노이 탑을 옮기는걸 총 2번 반복해야된다는 소리고, 이는 재귀로

2024.06.04·1분
Algorithm

백준 20926: 얼음 미로

문제 링크최단경로이므로 기본적으로 BFS로 조건에 맞게 탐색한 후, 시간 복잡도 최적화를 위해 check 배열을 사용해 최소값을 갱신한다.다익스트라(Dijkstra)우선순위 큐로 최적화 시켰으므로 O(NlogN)해당 부분을 check 배열로 잘못써서 계속 시간초과가 났

2024.06.03·2분
Algorithm

백준 26609: 험난한 등굣길

문제 링크문제의 범위가 3000이고, 해당 조건의 교통체중을 전부다 BFS로 일일히 돌리면 시간초과가 난다. 따라서 교통체중의 경계값만 표시하고 학교를 가는 최소값은 다익스트라를 사용한다.다익스트라구현우선순위큐로 최적화를 시키지 않았기 때문에O(N^2)일반 BFS로 해

2024.06.02·3분
Backend

HttpMessageConverter

뷰 템플릿으로 HTMl을 생성하는게 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 사용하는 기능HTTP 컨버터가 작동하는 시기를 알려면, ResponseBody의 동작 흐름을 알아야한다. 흐름도@ResponseBody가

2024.06.01·2분
Backend

@Autowired 사용시 주의사항

Spring Framework에서 DI Dependency Injection를 할 때 사용하는 어노테이션 Annotaion이다.@Autowired는 타입 클래스이름을 통해 Bean을 조회 한다.그렇다면 Bean이 다수일 경우에는 어떻게 될까?조회 타입 1개를 기대했는데

2024.04.17·1분
Backend

생성자 주입을 사용해야하는 이유

의존성 주입의 방법중의 하나이다.그 많은 방법 중에서 왜 생성자 주입을 사용해야 하는지 알아보자.말 그대로 생성자를 통한 의존 관계를 주입하는 방법이다불변대부분의 의존 관계는 한번 정해지면, 애플리케이션 구동이 끝날때까지 변하지 않는다객체를 생성할 때 한번만 호출되므로

2024.04.16·2분
Algorithm

백준 1261: 알고스팟

1261번: 알고스팟(0,0)에서 (M,N)까지 가는데 드는 최소 비용(벽의 최소치)를 구해야 하기 때문에 최소 배열을 하나 만든 후, BFS로 이동하면서 최소치를 갱신해준다단, 갱신할 필요가 없는 경우 추가로 이동하지 않도록 제한을 건다시간 복잡도를 최소화 하기 위해

2024.04.08·2분