전체 글 82

2023년 상반기 회고

눈을 감았다 뜬 것 처럼 12월부터 6월까지가 흐른것 같다. 스터디이펙티브 자바 책을 사놓고..절대 안읽게 됨을 깨달아서 스터디를 구했었다. 책이 두꺼운 만큼 약 5개월동안 매주 월요일에 스터디를 했었다. 내가 팀장이지만 나 빼고 다 현업 개발자분들이라 처음엔 긴장했지만 나중엔 내가 엄청 의지를하게 되었다.(인턴 우수수 떨어질때 ㅋ) 스터디를 해서 책 한권을 읽을 수 있었고, 현업자들의 사고방식과 그들의 풀이 방식을 알 수 있었다. 나는 정말 멀었다는 생각이 들었고 자바가 너무 새로웠다.. 무엇보다 좋은 사람을 5명이나 알게돼서 든든하다. 인턴을 우수수 떨어진 겨울, 무엇이 문제인지 깨닫고 미친사람처럼 스터디를 2개나 더 구했었다 코딩테스트스터디,cs스터디 물론 아직까지도 하고 있다. 코테 스터디에서 이..

[플로니] Spring Batch로 이월 설정 구현하기

플로니가 제공하는 서비스 중 이월 설정이 있다.즉, 매달 1일이 되면, 모든 가계부 중 이월 설정 ON이 되어있는 가계부는 지난달 총 수입 - 지난달 총 지출 = 다음 시작 금액을 계산해서 데이터베이스에 갱신을 해주어야한다. 어떻게 해야할까? 우선 검색을 하다보니 스프링 배치라는 솔루션이 적합해보였다. 스프링 배치는 대용량 일괄 처리의 편의를 위해 설계된 가볍고 포괄적인 배치 프레임워크이다. - 특정한 시점에 스케줄러를 통해 자동화된 작업이 필요한 경우 사용하면 좋다 딱 우리가 필요한 기능에 맞다고 본다 그렇게 몇주간 배치 공식 문서를 보며 공부를 하였고 구현을 하였다. 현재 스프링 부트 2.7.7를 사용하고 있기 때문에 우리의 Spring Batch는 2.7.7를 사용한다. Reader - Proces..

Floney 2023.07.12

[플로니] 초기화된 캘린더 응답 방식 포함 시켜 만들기

우리의 가계부는 월별 조회 기능을 제공하고 있다. 다음과 프론트에서 요청을 하면 - 하루의 총 지출 - 하루의 총수입 - 월별 총지출 - 월별 총수입 의 데이터를 담아 return 해주어야 한다. 이를 위해서 API명세서를 다음과 같이 작성해 주었다. 예를 들어 2023-05-01이 들어오면, DB에서 5월에 등록된 가계부 내역들을 모두 조회해야 한다. 1. 기간 정하기 이를 위해 2023-05-01부터 2023-05-31이라는 기간을 지정해야 했다. LocalDate의 기능 중에는 해당 년-월의 첫날과 끝날을 알려주는 기능이 있다. DateFormatter라는 util 기능을 정의하여, dates라는 map리스트를 만들어주었다. public class DateFormatter { public stati..

Floney 2023.05.30

[플로니] default 설정을 했는데 null이 나와요

최근 시작한 프로젝트에서, Entity의 column값을 default값으로 설정하고픈 일이 굉장히 많아졌다. 예를 들면, 논리적 삭제를 구현할 때에 status를 boolean값으로 default는 True를 지정해주어야 했다. 그런데 원하는 대로 default값이 아닌 null로 들어가는 현상이 많았고, 이에 대한 시행착오를 적어보려고 한다. @ColumnDefault() 일단 이 어노테이션에 어려움을 느낀 사람이 참 많았다. 나도 그렇고, 사람들도 그렇듯이 default가 있어서, @ColumnDefault값을 쓰면, entity에 저장될 때 자동으로 어노테이션 값으로 바뀌는 줄 알았다.@ColumnDefault("true") private Boolean active; 다음과 같은 상황일 때, ac..

Floney 2023.05.09

플로니 - 끝나지 않은 카테고리 삽질기(상속관계 @Builder)

아...지난 화에 이어 카테고리를 드디어 끝내나 했는데, 문제가 발생했다. 설계에 의문을 가질 때 아는 가장 쉬운 방법은 문제가 생기면 잘못된 설계라고 조언을 듣자마자 바로 문제가 생겼다 정답! 일단, 불행 중 다행으로 분리까진 괜찮은 도전 같다 하지만, 가계부 내역 생성을 할 때, OneToMany로 카테고리를 묶으려고 하니 문제가 생긴다. 만약 프론트에서 "선물"이라는 카테고리의 가게부 내역 선택해서 보냈다면, 현재 가계부의 고유한 카테고리는 BookCategory라는 Entity로 모든 가계부의 공통 카테고리는 Category로 정했기에 '선물'이라는 값이 들어오면 이 선물이 어떤 entity인지 BookCategory인지 Category인지 알기 위해 탐색을 두번 거쳐야한다. (1) 기본 카테고리..

Floney 2023.04.30

플로니 - 카테고리 조회하기 시행착오

이제 카테고리를 조회하고 싶었다. 단순한 문제가 아니였다. 다음과 같은 피그마 속 카테고리들은, 모든 사용자가 처음으로 가지게 되는 '기본 카테고리'이다,도식화를 통해보자면 다음과 같이 카테고리를 가계부 별로 편집할 수 있다.만약에 기본 카테고리가 이렇다면가계부마다 편집 기능을 통해 선물이라는 카테고리를 추가할 수 있다 즉 루트는 기본 카테고리인 '지출'이고 , 그 하위 자식 카테고리로 bookKey와 연결된 "선물"을 추가하게 된다. 현재 카테고리 조회 방법 프론트에서 조회하고 싶은 루트 카테고리의 이름과 "가계부의 식별키"를 알려주면 가계부와 연관된 카테고리 와 기본 카테고리 중에서, 일치하는 카테고리만 뽑아와야한다. 예를 들면, 프론트에서 '이체'카테고리를 요청하면 이체,저축,투자 카테고리를 가지고..

Floney 2023.04.26

플로니 - Spring Boot Category 생성하기

우리 앱은 내역 생성 시, 카테고리를 고르는 카테고리 기능을 포함하고 있다. 그냥 개발하면 될 줄 알았는데 카테고리가 설계가 잘 되어있어야 , 추후 기능을 수월하게 개발할 것 같다는 생각과 함께 개발 과정이 복잡해서, 글로 남기며 설계를 해보려고 한다. 1. 요구 사항 정의 다음과 같은 플로우를 만족시키기 위하여, 필요한 카테고리는 크게 2개의 트리(?)형태로 구성할 수 있을 것 같다. 전제 : 가계부 별로 카테고리를 편집하고 관리할 수 있다 (1) FLOW 분류라는 대 카테고리를 잡으면 자식 카테고리는 다음과 같이 이 자산의 분류가 어떻게 되는지(Line) 카테고리로 표시하는 것이다. 하나의 Flow 카테고리는 여러개의 line 카테고리를 가지게 된다. 예시로 2가지의 Line 카테고리를 넣어놨다. (..

Floney 2023.04.22

2023 스마일게이트 윈터 데브 캠프 - 개인프로젝트(합격부터)

2022.12 ~2023.02까지 스마일게이트에서 주관한 winter dev camp에 참여했다 합격과정서류 제출예시로 보여준 양식 외에는 정해진 양식이 없었고 그냥 간단하게 A4 1장에 내 이력을 정리하고 포트폴리오를 제출했다. 제출하고 한... 2-3주 뒤에 결과가 온 것 같다.AI면접이번에 대규모로 열리는 서버 캠프라 그런지, AI면접을 봤는데 흔히 기업에서 보는 AI인 적성 검사라기 보단 정말 질문 3개 정도에 답하는 면접이었다. AI게임은 없었다. 지금 와서 기억은 안 나는데, 그냥 흔히 얘기하는 프로젝트 중에 충돌이 생기면 어떻게 했니? 뭐 이런 질문이었던 것 같다. AI면접에 대해 감이 안 잡혀서, AI면접을 지원해 주는 사이트가 [제네시스 랩]이었는데 이 사이트에서 모의 면접을 진행해 주어..

최근 받은 코드리뷰들에 대한 정리 및 생각들

근래 감사하게도 코드리뷰받을 기회가 많았다. 정리해서 리팩토링에 적용해보려고 한다 스마게 데브 캠프 코드 리뷰 인증 필터 처리에서, Header가 비어있을 수도 있다. 이와 같이, NPE가 안 나도록 검증하는 것은 매우 중요하다. 최근 effective java에서도 관련된 내용이 많이 나왔다. 나 왜 이런 코드짯지..? SRP원칙을 지키자. + 메서드가 단순히 다른 메서드를 return 하는 상태라면, 과감하게 그 메서드를 합치자 VO가 무엇인지 정리해보았다. DTO는 데이터 전달용 즉 Data Transfer Object 데이터를 전달하기 위해 사용하는 객체이며 계층 간 데이터를 전달하기 위한 객체이다. 오직 getter/setter 메서드만 갖는다. 다른 로직을 갖지 않는다. VO는 값 표현용 값 ..

눈물없이는 못보는 나의 겨울 인턴 실패기

솔직히 말해 나에게 남은 건 인턴밖에 없다고 생각했다 실무 밖에 안 남은 것 같다고…(지금 보면 응 진짜 아니야) 그래서 진짜 미친 듯이 인턴을 하고 싶었다…그래서 미친 듯이 지원했다 사실 많은 친구들이 인턴을 시작하는 게 너무 부러웠다… 오늘부로 내 모든 도전이 휴식으로 들어갔다 이제 개강이기 때문이다. 개강 전에 기회가 있었으면 좋았겠지만 없었다 블로그를 보며 그 회사에 대한 정보를 많이 얻고 전형을 기다렸던 것 같다 누군가에게 도움이 되길 바라며 나의 실패 기를 주르르륵 니열해본다.. 생각나는 대로.. 1. 오늘의 집 버킷플레이스 인턴 서류는 넣은 지 일주일정도 후에 연락이 왔다 합격이었다 다음 전형으로는 코딩테스트를 봐야 했다 코테란걸 조오금 공부하고 제대로 본 코테였기 때문에 당연히 잘 풀리가 ..

728x90