본문 바로가기

전체 글15

아무것도 모르던 고등학생, 개발자가 되기까지 - 마이스터고 시절 회고 나는 19살에 개발자로 취업했다.하지만 불과 몇 년 전까지만 해도C언어 수업에서 아무것도 못 하던 학생이었다. 지금 돌이켜 보면개발자가 되는 과정은 어떤 특별한 재능보다작은 계기와 선택들,그리고 일상의 불편함을 기술로 해결하고 싶다는 마음이 쌓여 만들어진 결과였던 것 같다. 오늘은 나 자신을 돌아보는 시간을 가지며고등학생 시절 내가 어떻게 개발자의 길을 걷게 되었는지 이야기해보려 한다. 소프트웨어 마이스터고등학교에 입학하다나는 초등학교 저학년 때부터 꿈이 로봇공학자였다.초등학교부터 중학교까지 SW와 로봇 관련 활동을 하며자연스럽게 꿈을 키워왔다. 부끄럽지만 중학교 때 목표 대학은 카이스트 / 유니스트 진학이었다.막연히 좋은 공과대학에 진학해서 로봇공학자가 되고 싶었다.중학교 3학년, 고등학교 진학을 앞두.. 2026. 3. 1.
Gradle vs Maven 제 글에 문제가 있다면 댓글로 알려주시면 감사하겠습니다! 🙇‍♂️ Gradle과 Maven은 모두 빌드 관리 도구이다. 빌드 관리 도구란? 우리가 작성한 Java 코드와 프로젝트 내에 필요한 각종 설정 파일(xml, properties, jar, yml etc...)들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 도구를 말한다. 빌드는 코드를 사용 or 실행 가능한 형태로 컴파일링, 링킹, 패키징 하는 것을 포함하며 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이라 할 수 있다. 애플리케이션을 개발하면서 개발에 필요한 외부 라이브러리들을 다운로드하고, 또한 모든 라이브러리들을 번거롭게 모두 다운로드 받을 필요 없이, 빌드 도구 설정 파일에 필요한 라이브러리 종류와 버전들, .. 2022. 3. 31.
Spring 트랜잭션 관리 제 글에 문제가 있다면 댓글로 알려주시면 감사하겠습니다! 🙇‍♂️ 트랜잭션? 트랜잭션이란 쪼갤 수 없는 업무 처리의 최소 단위를 말합니다. 트랜잭션 종류에는 데이터베이스 트랜잭션, 메시지 큐 트랜잭션 등등이 있습니다. 트랜잭션의 성질 원자성 (Atomicity) : 한 트랜잭션 내에서 실행한 작업들은 하나의 단위로 처리한다. 즉, 모두 성공 또는 모두 실패 일관성 (Consistency) : 트랜잭션은 일관성 있는 데이터베이스 상태를 유지한다. 격리성(독립성) (Isolation) : 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리해야 한다. 영속성(지속성) (Durability) : 트랜잭션이 성공적으로 처리되면 결과는 항상 저장되어야 한다. Spring에서 트랜잭션을 관리하는 방법은 크게.. 2022. 3. 28.
SpringBoot에서 Ehcache 사용해보기 이 글은 2021년 12월에 작성되었으며 블로그를 이전하며 옮기게 되었습니다. 제 글에 문제가 있다면 댓글로 알려주시면 감사하겠습니다! 🙇‍♂️ 모든 코드는 Github에서 관리중입니다. 필요할 시 확인하시면 될 것 같습니다. 😊 일단 Cache를 사용하여 데이터를 가져오는 이유를 모르는 사람들을 위해 간략하게 설명해 보겠다. 우리가 기본적으로 cache를 사용하여 데이터를 가져오는 이유는 데이터베이스의 과부하를 줄임과 동시에 짧은 데이터 조회시간을 통해 쾌적한 서비스를 제공함에 있다. 그러나 무분별하게 사용할 경우 원치 않는 데이터가 보여 신뢰성을 떨어트릴 수 있다. 사용하게 된다면 신중하게 사용하도록 하자 Gradle 의존성 implementation 'org.springframework.bo.. 2022. 3. 25.
Java 동시성 문제와 ThreadLocal 이 글은 2021년 12월에 작성되었으며 블로그를 이전하며 옮기게 되었습니다. 제 글에 문제가 있다면 댓글로 알려주시면 감사하겠습니다! 🙇‍♂️ ThreadLocal 그게 뭐야 ? 간단히 말하자면 스레드 단위로 로컬 변수를 할당하는 기능이다. ThreadLocal의 필요성을 느끼기 위해선 먼저 동시성 문제를 느끼고 알아야 한다. 동시성 문제, 그건 또 뭐야? 스프링 빈은 싱글톤이 보장된다. 이 객체의 인스턴스가 애플리케이션에 딱 1개만 존재한다는 뜻이다. 이렇게 하나만 있는 인스턴스의 필드를 여러 스레드가 동시에 접근하기 때문에 동시성 문제가 발생한다. 예를 들어 회원을 저장하고 1초 쉰 뒤 조회하는 코드가 있다고 가정해보자 private String nameStore; public String logi.. 2022. 3. 25.
JPA N+1 문제와 해결 이 글은 2021년 11월에 작성되었으며 블로그를 이전하며 옮기게 되었습니다. 제 글에 문제가 있다면 댓글로 알려주시면 감사하겠습니다! 🙇‍♂️ 저는 JPA를 이용하며 프로젝트를 하며 N+1 문제를 만나보진 않았습니다. 하지만 JPA를 사용하면 자주 만나게 되는 것이 N+1 문제입니다. JPA를 공부 할 때에 예시 상황을 만들고 공부를 했었지만 공부한 지 시간이 좀 지났기 때문에 프로젝트 중 N+1 문제가 생기더라도 당황하지 않고 빠르게 해결하기 위해, 다시 공부하기 위해 이 글을 작성합니다. 이동욱 님의이동욱 님의 글을 참고하여 Java8 -> Java11, SpringBoot 1.5.X -> 2.5.X, Junit4 -> Junit5로 버전을 업그레이드하여 코드를 작성하였고, 이 글을 작성하였습니다 .. 2022. 3. 25.