안녕하세요.
|
개발자 최혜원입니다.

thumbnail
우아한테크코스를 떠나며

유난히 길고 힘들었던 2022년이 지났다. 와 이라는 두가지로 축약되는 해였다. 글을 쓰기 시작한 건 작년 30일인데, 이제야 올리려니 머쓱하지만😓 그래도 회고 완성했다! 🔥 취업 회고 감사하게도 와 , 그리고 다른 두 곳에 최종 합격했다. 카카오페이 합격 통보 시점에 나머지 진행 중이었던 곳들은 중단한다는 연락을 드렸다. 모두 진지하게 고려중인 회사였으나, 현실적으로 두 회사의 입사일 전에 결과가 나오기 어려운 상황이었다. 22년도 안에, 그러니까 해가 바뀌기 전에 취업하기가 목표였는데 기대보다 좋은 결과로 무사히 달성했다. 같은 어그로 업적을 달성한 스스로가 자랑스럽기도 하고(ㅋㅋ) 취업연계를 제외한 곳에서도 예상 외의 좋은 기회를 많이 받았기에 어떤 점이 좋았고 아쉬웠는지 정리해봤다. 💯 이건 정말 잘했다 블로그를 썼다!!! 우테코 기간 동안 블로그를 성실히 쓴 다른 크루들에 비하면 글 수는 적다. 면접 보던 시점에 포스팅이 20개 정도 있었으니, 2주에 하나쯤 쓴 셈이…

January 06, 2023
회고
우아한테크코스
Querydsl만의 아늑한 🏡 지어주기

🧶 문제상황 🪐 비대해진 서비스 코드 줍줍은 요청에 따라 동적으로 변화해야 하는 복잡한 조회 조건을 걸기 위해 을 도입했다. 예전에 공부하며 가볍게 사용해 본 적은 있지만, 줍줍 요구사항만큼 복잡한 코드를 짜 본 적은 없었다. 에 코드를 넣는 식으로 우선 구현했고, 무사히 배포되었다. 그러다 을 쓰지 않는 다른 서비스 클래스 코드를 보니 ‘어… 여기는 너무 깔끔한데?‘하는 위화감이 들었다. 그리고 다시 을 쓰는 코드를 보니, 가 할 일이 에서 이뤄지고 있다는 생각이 들었다. 위에 있는 기존 의 짧은 예시 코드 내에서도 사용으로 인한 서비스 역할 비대화가 보인다. 의 경우 DB에서 데이터를 가져오는 역할을 완벽히 에 맡기고 있다. 반면, 는 DB에서 어떤 데이터를 가져올지 서비스 코드 상에 완전히 노출되어 있음을 볼 수 있다. 그래서 각 레이어 별 역할이 원칙대로 분리되도록 코드를 별도의 객체로 빼내는 리팩토링을 시작했다. ✂️ 일단 레포지토리 코드 분리 사용 예시를 보면 을…

October 26, 2022
Spring
트러블슈팅
etc
[JPA] EnableJpaAuditing의 내부와 CI의 소중함

💣 문제상황 줍줍에는 북마크 설정한 메시지를 모아서 보는 기능이 있다. 기존에는 이 북마크 목록을 보여줄 때, 북마크가 등록 된 메시지의 생성 시간 순서대로 보여줬다. 그러다 사용자 편의를 위해 이를 북마크 등록 시간 순서대로 보여주기로 바꿨다. 이 때, 북마크 등록 시간을 편하게 관리하기 위해 을 도입했다. 그리고 해당 PR은 순조롭게 머지 되었는데… 팀원 봄이 진행한 컨트롤러 테스트를 WebMvcTest로 개선하는 PR에서 문제가 생겼다. 봄의 로컬에서 테스트가 잘 돌아가는 상태였는데, PR의 github action에서는 테스트가 실패했다. 로 변경한 모든 용 컨트롤러 테스트가 같은 이유로 실패하고 있었다. 라는 문구가 눈에 띈다. 해당 문구로 라이브러리를 검색해보면 라는 클래스가 나온다. 사실 이 문구로 검색하면 많은 사람들이 해결법을 이미 올려두었다. 그런데 여기까지 오니, 이 대체 뭔데? 도 아니고 라고? 이거랑 은 무슨 상관이지? 등등 궁금한 점이 생겨서 코드를 조금…

October 14, 2022
Spring
JPA
트러블슈팅
줍줍 MySQL 인덱스 탐험

🧳 줍줍 MySQL 인덱스 탐험 ❗️ 해당 포스팅에서 지칭하는 책은 모두 Real MySQL 8.0 1권을 뜻합니다. 우테코 팀 프로젝트 5차 스프린트에서 성능 테스트로 톰캣 설정 최적화 / 모든 쿼리 수집 후 DB 인덱스 설정 이라는 두 개의 백엔드 과제가 있었다. 나는 이 중 DB 인덱스 설정을 맡게 되었다. 줍줍의 전체 테이블 구조는 정석 ERD보다 간략하게 표현하자면 이렇다. 쿼리 수집은 쉬웠다. 줍줍의 모든 클래스들은 를 상속했다. 는 선언하지 않은 메서드도 사용 가능한 반면, 를 상속하면 선언한 메서드만 사용 가능하다. 뒤집어 말하면 사용을 제외하면, 코드의 모든 메서드가 곧 프로젝트에 사용 중인 모든 쿼리였다. 쿼리 최적화 by.봄🌱 인덱스 최적화를 시작하기 전에 고맙게도 같은 팀 크루인 봄이 불필요햔 left outer join을 제거하는 쿼리 최적화를 해주었다! 에서 의 PK를 FK로 가진 가 해당 FK를 조건으로 조회할 때, 로 하면 불필요한 이 발생하고 …

October 04, 2022
etc
우아한테크코스
트러블슈팅