개발일기 (9) 썸네일형 리스트형 2023 회고 벌써 올 한해가 가고 오늘은 12/31 마지막 날이다. 블로그에 소홀하기도 했고, 개인적으로 생각 정리도 할 겸 글을 적어보려 한다. 글 잘 쓰시는 다른 분들에 비해 그닥 재미와 감동은 덜 하겠지만, 이것 또한 일기처럼 기록돼서 '그땐 그랬지~' 정도가 될 듯 하다. 결론부터 말하면 올 한해도 고생 많았다. 작년처럼 불안하고 마음속으로 많이 헤맸지만, 작년처럼 노력했고 성장했다. 작년과 다른 점이 있다면 고민의 깊이가 달라졌다는 점과 내 위치, 그리고 내 위치를 자각하고 있다는 메타인지 향상... 정도 이제는 초심자와 다르게 '소프트웨어로 세상을 바꾼다'(ㅋㅋ)와 같은 거창한 생각은 하지 않는다. 세상은 경제, 정치, 사회적 이슈로 인해 훨씬 더 복잡하게 흘러간다. 작년 여름부터 시작된 금리인상도 그렇고.. 팀 프로젝트를 진행하며 겪었던 트레이드 오프 사례들 팀 프로젝트를 진행하며 내가 겪었던 몇 가지 트레이드 오프 사례들을 회고해보자. 사례 1: embedded 객체 사용 팀 내에서 객체지향 생활체조 원칙 중 규칙 6: 모든 엔티티를 작게 유지한다 규칙 7: 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다 를 반영하여 embedded 객체를 적극적으로 도입하기로 했다. 내가 맡은 도메인은 주문이었는데, 예를 들면 Order 엔티티 클래스 내에 주문번호, 접수번호 등의 필드를 OrderInfo라는 embedded 객체로 분리하는 방식이었다. @Entity public class Order extends BaseTimeEntity { // 생략 @Embedded private OrderInfo orderInfo; } @Embeddable public c.. health-log 프로젝트를 진행하며 만난 이슈들 레포지토리를 만든지 2주쯤 지난 지금, 프로젝트를 진행하며 겪은 어려움을 정리하고자 한다. 만난 이슈들 1. LazyInitializationException 프로젝트 구조 상 Article 테이블이 있고, 하나의 Article 게시물에 여러개 Training이 one-to-many로 연결되어 있다. JPA를 통해서 테이블을 생성하고, Article entity는 List 형태의 필드를 가지고 있다. Training은 Article 게시물이 없으면 존재할 수 없으므로, CascadeType.ALL로 종속되어 있다. JPA 테스트를 진행하던 도중, delete 테스트에서 cascade된 training을 가져오는 부분에 LazyInitializationException이 발생했다. @DisplayName(.. 2022 회고 2022년은 다사다난했던 해였다. 개인적으로도 많은 변화가 있었고 마음대로 일이 안풀리기도 했지만 기술적으로나 인격적으로나 더 깊이가 생겼다는 느낌은 생긴듯 하다. 1. 운동 작년 한해 큰 변화 중 하나는 웨이트를 본격적으로 시작했다는 점이다. 7~8월에 시작해서 일주일에 5일정도 하고 있다. 처음 시작하고 세달 정도는 등이 드라마틱하게 커져서 성취감으로 계속 했던 것 같다. 중량을 쉽게 쉽게 올려가서 '나 근수저인가' 생각을 하기도 했다. 자연스럽게 먹는 것도 바뀌었는데, 식단을 챙긴다기 보다는 운동한게 아까워서 클린한 단백질을 위주로 먹기 시작했다. 자연스레 채우고 싶은 부위를 정해보고 직접 해보며 지금까지도 재미를 느끼며 하고 있다. 운동을 하면서 운동과 개발공부는 비슷하다라는 생각을 했는데, 신체.. 우아한테크코스 프리코스 후기 개발을 시작한 이후로 가장 밀도높게 집중했던 4주가 지났다. 실제로 힘들었지만 힘들었던건 하나도 기억나지 않고 오히려 즐거웠다고 자신있게 말할 수 있을 만큼 너무나도 유익한 시간이었다. 돌이켜보면서 성장했던 점은 무엇인지, 아쉬웠던 점은 무엇인지 되돌아보려고 한다. 1주차 1주차에는 코딩테스트 문제와 비슷한 과제였다. 실제로 코딩테스트에 비해 난이도가 어렵지 않았지만, 나는 시작하기 전에 숫자야구를 구현해보고 시작했기 때문에 이것 또한 객체지향적으로 짜보려고 했고 필드값을 지정했다. 자바를 굉장히 오랜만에 써봐서 문법을 익히는데 시간을 많이 들였던것 같다. 2주차 2주차에는 숫자야구가 나왔다. 어떻게 구현해야 되는지 알고 있었기 때문에 마음은 편했지만 아예 처음부터 짜보자고 다짐하고 객체지향의 사실과 오.. 4월 ~ 6월 회고 그동안 했던 취준활동등을 정리하며 회고하고자 한다. 아쉬운 점과 잘한 점. 1. 코딩테스트 준비 프로그래머스와 백준으로 준비했다. 알고리즘 기본 강의와 이코테, 파이썬 알고리즘 인터뷰 책 2권 (약 60% 진행) 프로그래머스에서 진행하는 데브매칭, 코테는 실전연습 삼아 다 지원했다. 2. CS공부 깃허브 (한재엽님), 우아한테코톡, 면접을 위한 CS 지식 으로 공부했다. 유명한 질문들은 블로그에 글로 작성했다. 카카오 채용연계형 Tech 인턴십 2솔이였던 걸로 기억한다. 제일 밀도높게 집중했던 코테였고, 끝난 후 아쉬움보단 후련함을 느꼈다. 채용설명회에서 개발자분들에게 너무 많은 인사이트를 얻어서, 비록 코테 탈락이지만 배운 점이 많은 과정이었다고 생각한다. 네이버, 라인 인턴십 둘 다 코테 탈락.. 라.. 겉핥기 달인이었던 주니어 개발자의 QueryDSL을 통한 성능 개선 후기 여느 때와 같이 재택근무 중이던 평온한 오후에 프론트 쪽에서 슬랙이 날라왔다. 단순히 유저 전체 리스트 조회하는 호출이였는데, 코드를 뜯어 보니 List allResponseList = oliveUserService.findAllResponseList(); for (UserResponse userResponse : allResponseList) { Long id = userResponse.getId(); User user = userRepository.findByOliveUserId(id); if (user != null) { userResponse.setProvider(user.getProvider()); userResponse.setProviderId(user.getProviderId()); } 요약.. 첫 운영서버 배포 회고 이제 차차 회사에 적응을 하고 내가 썼던 코드들을 운영서버에 배포하면서, 그동안 느꼈던 점과 성장했던 점, 아쉬웠던 점을 정리하려고 한다. 느낀 점 입사 전 후 가장 달라진 점은 협업의 중요성이다. 실제 배포까지는 local, dev, main까지의 단계를 거치며 보통 내가 local에서 개발 후 팀장님의 승인을 받고 dev에 merge한 뒤, dev서버에서 에러 로그를 살핀 후 운영에 배포한다. git을 공부할 때 귀찮아서 하지 않았던 branch를 나누는 것도 굉장히 중요하고 획기적인 업무라는 것을 깨달았다. 내가 주로 하는 일은 API를 개발하는 것이였는데 프론트, 안드로이드, ios 팀원들과 주고받는 데이터들을 정하고 소통하며 일하는 과정은 되게 즐거웠다. 외부 업체, 기획팀과 미팅하고 테이블 컬.. 이전 1 2 다음