내가 그린

크래프톤 정글 1기 - 5개월 집중 개발 교육 후기

늦게나마 2022.10 ~ 2023.03 크래프톤 정글 1기 5개월에 관한 간략한 후기를 작성한다. 참고로 현재 크래프톤 정글 커리큘럼과 1기 커리큘럼은 조금 차이가 있다. (현재는 마지막 프로젝트 전에 알고리즘 문제풀이와 프레임워크 학습 주간이 추가 됨) TIL TIL은 개인의 성향대로 하면 된다. 매일을 회고하는 느낌의 일기 형식도 좋...

크래프톤 정글 1기 수료 후 개발자 취업까지: 2023년 회고록

2023년 3월 크래프톤 정글 1기를 수료하고 거의 1년이란 시간이 지났다. 수료 후 취업 준비, 회사 적응 등의 핑계로 미루고 미뤄웠던 정글 후기와 2023년의 회고를 늦게나마 작성한다. 2023년 회고 2022년 10월, 크래프톤 정글 합격 소식을 듣자마자 망설임 없이 인생의 2번째 퇴사를 결심했다. 총 2년 6개월 동안 두 회사에서 네...

MySQL 트랜잭션과 잠금 메커니즘 완벽 이해하기

Real MySQL 8.0 5장 트랜잭션을 학습한 내용입니다. 트랜잭션 트랜잭션은 논리적인 작업 셋이 저장을 하거나 실패 시 원상태로 복구해서 작업의 일부만 적용되는 현상을 발생하지 않게 해준다. 잠금(Lock)과 비슷하나 목적에서 차이가 있는데 잠금은 동시성을 제어하기 위한 기능이고, 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다. ...

자바 코드 리팩토링: 가독성과 유지보수성 향상 기법

코드 리뷰 연동 프로젝트를 시작한지 1달 정도가 지나고 있다. 그동안 혼자 프로젝트를 진행하다보니 설계, 기능 구현, 테스트에 집중하여 코드 품질을 미처 챙기지 못하였다. 이번에 동료 개발자분께서 프로젝트에 합류하게 되면서 구현했던 코드에 대해 리뷰 받을 기회가 있어서 변경 전과 변경 후 코드에 대해 비교하는 글을 써보고자 한다. 리팩토링한 실...

Spring 테스트 코드 작성 가이드: 단위 테스트부터 통합 테스트까지

스프링 테스트 코드를 작성하면서 테스트 관련 어노테이션이 너무 다양하고, 무엇을 위해 쓰는 지 몰라서 원하는 대로 테스트 코드를 작성하기가 어려웠다. 테스트 코드 관련 내용을 차근히 정리할 필요성을 절실히 느끼게 되었다. @SpringBootTest(통합 테스트) 애플리케이션 컨텍스트(빈, 설정, 구성 요소 )등을 로드하는 테스트 어노테이션...

Spring Local Cache 구현: 성능 최적화와 메모리 관리

캐시의 필요성 외부 시스템과 연동하는 프로젝트를 진행 중인데, 연동하는 데이터들은 수정이 적고 조회는 빈번하기 때문에 캐시에 연동 정보를 저장하면 DB 조회를 줄여 성능을 개선할 수 있기에 캐시 도입을 알아보게 되었다. 스프링 캐시 특징 스프링에서는 Bean의 메소드에 캐시를 적용할 수 있는 기능을 제공한다. 스프링의 캐시 추상화는 AOP를...

자바 기본 개념 정리: 객체지향, 상속, 다형성, 추상화 이해

김영한의 실전 자바 기본편에서 학습한 내용을 정리한 글입니다. 자바에서의 대입? 항상 변수의 값을 복사해서 대입한다. 기본형(Primitive Type)이면 변수에 들어있는 실제 사용하는 값을 복사하여 대입하고 참조형(Reference Type)이면 변수에 들어있는 참조값을 복사하여 대입한다. 참조형이란? 데이터에 접근하기 위한...