분류 전체보기

회고

취업, 그리고 앞으로의 여정.

서문 2024년 1월 18일. 나에게 부족한 점, 그리고 나에게 주어진 피드백을 정리하며 마음을 다 잡았다. 노력의 결과였을까. 서류, 코딩 테스트, 1차 면접, 2차 면접을 통과하여 꼭 가고 싶었던 회사인 트렌비에 합격을 하게 되었다. 취업이라는 목표를 이루었고, 나는 이제 개발자라는 출발선에 다시 서게 되었다. 출발선에서 앞으로 내가 이뤄나가야 할 상반기 목표들을 정리해보고자 한다. 개발 아직 팀이 정해지지 않았고, 어떤 도메인을 도맡아서 개발을 할지에 대해서도 미지수이다. 하지만, 면접을 보면서 회사에서 현재 내 기술 스택과 비교하여 부족한 부분들이 무엇인지 들을 수 있었다. 상반기에는 회사의 문화에 적응하며 기술을 다룰 수 있도록 정진하여 사고치지 않고 1인분을 할 수 있게 됨에 집중해보도록 하자..

회고

나는 어디로 나아가고 있는가.

최근 4번의 최종 면접 탈락을 겪으면서 자존감이 많이 떨어져있다. 이렇게 죽어있는 상태로 나아가다간 나의 성장은 멈출 것 같다는 느낌이 들었다. 지금 이 글을 작성하고 있는 현재 나는 무엇을 하고 있는지 그리고 이를 토대로 무엇을 개선하면 좋을지에 대해 되돌아보자. 현재의 활동 현재 나의 패턴을 정리해보자. 오전 오전 7시에 일어난다. 데브코스 팀원들과 미라클모닝을 실천한지 어느덧 1달차가 되어간다. 미라클 모닝은 더욱 일찍 일어나야 하지만, 우선 7시에라도 일어나서 활동하자는게 취지이다. 벌써 1달이 거의 다 되어가지만, 아직도 일어나는 일은 쉽지가 않다. 몸을 뒤척이다 핸드폰으로 유튜브를 잠깐 볼까 하지만 머릿속으로 아침에 일어나자마자 보는 유튜브는 이후의 두뇌의 활동을 무너뜨린다는 얘기를 들은 적이..

회고

2023년 연간 회고

칼바람이 불던 2023년이 지나고 어느덧 2024년이 되었다. 달마다 연마다 나의 한해는 어땠는지 되돌아보는 회고 시간이 가장 중요하기 때문에 작성을 해나가며 회고를 진행해보고자 한다. 2022.12 ~ 2023.02 2022년도 10월부터 진행했던 캡스톤 프로젝트를 혼자서 가져가게 되면서 여러모로 부족한 부분이 많이 보였던 프로젝트였다. 당시에 js, http 자체를 이해하기 버거워해서 프론트를 다루는게 너무 어려워했었다. (지금와서 생각해보면 부딪혀가면서 했으면 어땠을까 싶기도 하다) 12월에 팀을 다시 새로 만들고 코드 자체도 리팩토링을 하면서 프로젝트를 다시 진행을 했었다. 당시에 테스트 코드를 작성하면서 테스트 코드를 작성하는 시간이 너무 많이 소요된다는 이유로 테스트 코드 작성을 소홀히 했었다..

개발 고민

N + 1 문제의 쿼리 개선의 주의사항

N + 1 문제를 해결하는 과정에서 발생하는 성능 차이 개요 프로젝트 도중 N + 1 문제를 해결하는 과정에서 예상하지 못한 성능 문제가 발생하였습니다. N + 1 문제를 해결하고 성능을 개선하면서 1 + 1 쿼리로 바꿨음에도 불구하고 성능이 떨어지는 이슈가 발생한 사례를 소개하도록 하겠습니다. N + 1 문제란 N + 1 문제를 해결하는 과정을 살펴보기 전에 N + 1 문제가 무엇인지 먼저 간단하게 알아보도록 하겠습니다. N + 1 문제는 연관관계가 설정된 엔티티 사이에서 한 엔티티를 조회하였을 때, 조회된 엔티티의 개수(N) 만큼 연관된 엔티티를 조회하기 위해 추가적인 쿼리가 발생하는 문제입니다. N + 1 문제의 해결 방법 N + 1 문제를 해결하기 위한 방법으로는 상황에 따라 FetchJoin, ..

Backend/Redis

Redis 테스트 이후 데이터가 남아있는 이슈

Redis Template 사용 시 주의사항 최근 Redis 학습 테스트를 진행하면서 발생했던 이슈를 하나 공유하고자 합니다. Redis의 자료구조 중 set 자료구조를 테스트하고자 하였습니다. 해당 테스트 코드는 다음과 같습니다. @DisplayName("restTemplate key-value(Set) 형식으로 저장한다.") @Test void saveSetForOps() { // given SetOperations stringObjectSetOperations = redisTemplate.opsForSet(); String KEY = "setKey"; LocalDateTime serverTime = LocalDateTime.now(); Fruits apple = Fruits.createFruit("..

Backend

EC2 재부팅 시 Docker, Nginx 자동 실행

들어가기전, EC2 서버 환경은 Amazon-Linux-2023 입니다. 프로그래머스 데브코스 기간 중 서버가 매일 오전 10시에 켜지고 새벽 2시에 꺼지도록 자동으로 설정이 되어있었습니다. 인프라를 담당하고 있던 제가 만약 누군가가 서버를 사용해야 한다면 새벽 2시까지 기다렸다가 서버를 켜주어야 하는 불편함이 있었습니다. 개발을 할 때부터 EC2 서버가 켜지면 필요한 Docker-Container 들이 실행되었으면 하는 생각이 있었습니다. 프로젝트 종료 이후 해당 방법을 해결하기 위한 방법을 찾아봤고, 비교적 간단한 방법으로 설정 할 수 있었습니다. 1. systemctl 을 등록 할 수 있도록 service 들이 모여있는 directory 로 이동 cd /etc/systemd/system 실제로 많은..

Backend/Redis

RedisTemplate LocalDateTime Serialize 문제

Spring Data Redis는 Key-Value 구조의 자료구조만 사용하기 때문에 다른 자료구조도 테스트 해보기 위하여 RedisTemplate를 직접 만들어서 학습 테스트를 진행해봤습니다. redisTemplate.opsForValue(); 를 사용하여 key-value 자료구조에 대해서 Primitive Type, Reference Type 두 경우에 대해서 테스트를 진행해보고자 하였습니다. @DisplayName("redisTemplate key-value 형식으로 기본형 타입 저장") @Test void saveValueOpsPrimitiveType() { // given ValueOperations stringObjectValueOperations = redisTemplate.opsForVa..

Backend/Redis

Spring Data Redis TTL 이슈

Redis TTL 이슈 레디스의 학습 테스트를 진행 하던 중 TTL 설정 시 발생하는 이슈를 확인 할 수 있었다. 다음과 같은 도메인이 있다. @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @RedisHash(value = "fruits", timeToLive = 1) public class Fruits { @Id private String id; private String name; private Integer stock; @Indexed private LocalDateTime createdAt; @Builder private Fruits(String name, Integer stock, LocalDateTime createTime) { thi..

Bombo_
'분류 전체보기' 카테고리의 글 목록