[회고] 2024년 회고: 변화와 배움, 그리고 2025년 목표
2024년은 긴 학업의 마침표를 찍고, 본격적으로 다음 단계를 준비하게 된 해였다. 누군가 “대학에 대한 미련이 없느냐”고 묻는다면 솔직히 완전히 없다고 하기는 어렵다. 하지만 이미 지나간 시간을 붙잡고 있을 수는 없다. 앞으로를 더 잘 살아내는 쪽에 집중하자는 마음이 점점 선명해졌다. 짧게 살더라도 후회 없이 사는 것. 요즘 내가 가장 자주 떠올리...
2024년은 긴 학업의 마침표를 찍고, 본격적으로 다음 단계를 준비하게 된 해였다. 누군가 “대학에 대한 미련이 없느냐”고 묻는다면 솔직히 완전히 없다고 하기는 어렵다. 하지만 이미 지나간 시간을 붙잡고 있을 수는 없다. 앞으로를 더 잘 살아내는 쪽에 집중하자는 마음이 점점 선명해졌다. 짧게 살더라도 후회 없이 사는 것. 요즘 내가 가장 자주 떠올리...
백엔드 개발을 하다 보면 한 번쯤은 다음과 같은 구조를 보게 된다. public class HelloServiceImpl implements HelloService { @Override // 무언가를 처리하는 로직 } “Service 클래스 하나면 되지 왜 굳이 인터페이스와 Impl을 나눌까?”라는 생각이 들 수 있다. 이번 글에서...
동시성은 여러 작업이 동시에 실행되더라도 전체 결과가 올바르게 유지되도록 설계하는 문제와 맞닿아 있다. 이 주제를 설명할 때 자주 등장하는 예시가 식사하는 철학자 문제다. 다섯 명의 철학자가 하나의 원탁에 앉아 식사를 한다. 각각의 철학자들 사이에는 포크가 하나씩 있고, 앞에는 접시가 있다. 접시에 담긴 음식은 포크 두 개를 사용해야만 먹을 수...
문제 상황 프로젝트 결과 보고서에 첨부할 Manual을 작성하던 중, JavaDoc을 생성해서 제출해야 하는 상황이 생겼다. 처음 해보는 작업이다 보니 두 가지 문제를 겪었다. 첫 번째 문제 JavaDoc 출력 경로를 내가 보기 편한 폴더로 바꿨다가 오히려 더 헷갈렸다. 결론부터 말하면, 처음에는 IDE가 잡아주는 기본 출력 경로를 그대로 사용하...
서론 SQL 면접 질문이나 실무 예제를 보다 보면 빠지지 않고 등장하는 구문이 GROUP BY와 HAVING이다. 문법만 외우기보다 실제 예제와 함께 이해하면 훨씬 오래 기억에 남는다. Group By란? GROUP BY는 같은 값을 가진 행을 기준으로 데이터를 묶는 구문이다. 보통 COUNT, SUM, AVG 같은 집계 함수와 함께 사용한다. ...
문제 상황 JPA를 사용할 때 @Entity 또는 @Column에 카멜 케이스 이름을 사용했는데, 실제 쿼리에서는 스네이크 케이스로 변환되어 나가는 경우가 있었다. @Column(name = "userId") // userId가 user_id로 변경되어 쿼리가 생성됨. 해결 방법 Hibernate의 네이밍 전략을 명시적으로 지정하면 자동 변환...
CSRF란? CSRF는 Cross-Site Request Forgery의 약자로, 사용자가 의도하지 않은 요청을 인증된 상태에서 보내게 만드는 공격을 의미한다. Spring Security는 기본적으로 CSRF 보호를 활성화하며, 일반적으로 GET을 제외한 상태 변경 요청을 보호 대상으로 본다. CSRF 보호가 켜져 있으면 HTML 폼에는 다음과 ...
생성자란? 생성자는 객체를 생성할 때 호출되어 인스턴스의 상태를 초기화하는 특별한 메서드다. new 키워드로 객체를 만들 때 실제로 함께 호출되는 것이 바로 생성자다. 즉, 인스턴스 생성을 시작하는 것은 new이고, 생성자는 그 과정에서 인스턴스 변수들을 초기화하는 역할을 맡는다. 객체와 인스턴스 두 용어는 비슷하게 쓰이지만, 보통 객...
문제 상황 Spring Boot + JSP + JSTL 기반으로 웹 프로젝트를 구성하던 중, WEB-INF 아래에 있는 JSP 파일을 정상적으로 불러오지 못했다. 해결 과정 1. 의존성 설정 Spring Boot는 기본적으로 JSP를 바로 지원하지 않으므로, 아래 의존성을 추가해줘야 한다. implementation 'org.apache.to...
서론 데이터베이스 종류가 많아질수록 “우리 프로젝트에는 어떤 DB가 맞을까?”라는 고민도 자연스럽게 생긴다. 이 글은 정답을 하나 제시하기보다, RDBMS와 NoSQL의 특징을 비교하면서 선택 기준을 정리해보려는 글이다. 그럼 바로 시작해보자. DB의 종류 DB는 크게 두 종류로 나눌 수 있다. RDBMS (Relationa...