[WIL] 부트캠프 5주차
·
Essay/WIL
1. 새롭게 배운 개념/지식RestTemplate 적용잘한 점 : RestTemplate 사용법과 Redis 자료구조와 활용방안에 대해서 공부했다. 공부 방법: Redis 자료구조와 활용방안(레디스 공식 유튜브: 짧고 지루하지 않게 설명 잘함. 단점은 영어라서 피곤, 개발자를 위한 레디스: 자료구조와 활용방안 부분만 봤는데 좋은 책이였다! gpt나 블로그 보지 말고 그냥 이 책 보는 것이 시간 낭비 안함. 짧게 정리된 것만 보면 별 생각을 안하게 되는데, 책을 보면서 따라가다보면 생각을 하게 되기 때문이다. )RestTemplate 사용법과 Redis 자료구조는 정리를 해두었는데, 이거 정리해두니 다른 사람 코드가 잘 읽혔다! 2. 문제를 해결하면서 얻은 인사이트캐시 구현을 어느 레이어에서 어떤 방식으..
[WIL] 부트캠프 4주차
·
Essay/WIL
한 일주문/결제과정에서 여러 작업(재고차감, 포인트 사용)의 원자성 보장 : 트랜잭션을 이용동시성 처리 : 좋아요 수 증감, 재고 차감, 포인트 사용에 대해 하나의 자원에 여러 요청이 몰렸을 때 정합성을 보장하기 위한 처리. DB를 이용하여 적절한 lock 사용하기쿠폰 설계 : 정액/정률이라는 여러 정책을 개방/폐쇄 원칙에 맞게 설계하고 주문 단계에 적용하기 공부해야 할 것 Springframework의 Transaction에 대해 알아보기 해야 할 일 이번주 프로젝트를 하면서 고민했던 부분이 Facade 계층에 코드가 너무 많아 지는 것이였는데 application 계층 내에 유효성 검증을 위한 별도 Resolver 를 두도록 코드 리팩토링 resolver를 사용하는 부분 코드 리뷰 요청드리기 :..
[WIL] 부트캠프 3주차
·
Essay/WIL
이번주 이커머스를 구현하면서 당면했던 내용을 정리해본다. JPA를 사용하면서 알아야 하는 것들도메인 중심으로 개발하고 각 도메인이 연결되었을 때 역할, 책임, 경계에 대해 고민하면서 구현하는 한 주였다. 하지만 JPA라는 도구를 사용하면서 JPA엔티티를 도메인 엔티티와 같게 두고 사용하기에 도메인을 DB에 저장할 때 어떤 형태로 어떤 방법으로 할 지에 대한 것도 매뉴얼 적으로 알 필요가 있었다. 1. VO를 JPA/QueryDSL에서 사용할 때 @Convert vs @Embedded AttributeConverter는 VO ↔ DB 컬럼 값 간 변환이 필요할 때 사용하는 것으로, 크게 @Convert, @Embedded 방법이 있다.두 방식의 큰 차이는 Convert는 컬럼 1개로 저장하고, Embedd..
[WIL] 부트캠프 1주차
·
Essay/WIL
7월 12일부터 시작한 경력자 부트캠프의 1주일이 지났다. 지난 한 주간은 TDD에 대한 것을 주제로 아래 내용을 익혔다. TDD로 범위를 작게 개발하는 것.테스트코드를 작성하는 방법테스트더블을 이용한 테스트코드 법 그리고 일주일이 지난 이번 토요일엔 여러 형태의 코드 리뷰를 받았다.렌 멘토님의 전체 코드 리뷰 : 멤버 한 분의 코드를 보면서 코드리뷰를 했는데 비슷한 고민을 하면서 코드를 작성하기 때문에 공감가는 부분이 많았다. 이 시간에 많은 인사이트를 받았다랜덤 리뷰 : 다른 팀 멤버들과 랜덤하게 조가 편성되어 각자가 받은 PR을 공유했다. 우리 팀은 주제로 이야기를 나눴는데 @Transactional 에 대한 부분과 테스트코드에 대한 이야기를 했다. Transaction의 범위와 readonly=t..
콘서트 예매 시스템 개발 회고
·
Essay/WIL
지난 3주간 시나리오 기반 서버 구축을 진행했다. https://github.com/mybloom/hh_concert_java대기열 관련 백엔드 시스템 설계를 진행하고 변경에 유연한 코드를  위해 아키텍처와 테스트코드 작성하는 것을 배웠다.그리고 운영을 위해 필요한 로깅과 동시성 처리도 진행했다.가장 긴 시간을 할애한 것은 설계와 비즈니스 로직 작성이었다. 그러면서 이 시간에 변경에 유연하고 유지보수를 고려한 코드 작성하는 법을 익히고 싶었다.그러기 위해서는 아키텍쳐 지식도 있어야 하고 좋은 코드를 많이 보면서 지식을 어떻게 코드화하는지도 익혀야했다.1시간 남짓 설명을 통해 무엇을 공부해야하는지 파악하고 실제로 더 필요한 지식들은 스스로 익혀야 했었다.나는 만들면서 배우는 아키텍처라는 책이 도움이 많이 ..
SQL 쿡북 스터디 회고
·
Essay/Learning Essay
SQL을 좀 더 정확히 짜고 싶어서 최근 SQL쿡북이라는 책으로 스터디를 했다. 요즘은 데이터분석이라는 조직에서 관련 업무를 해서 백엔드가 쿼리를 많이 짤 일은 없는 추세인 것 같기도하다. 근데 이 공부는 계속해서 필요를 느꼈고 하고 싶었던 주제여서 시작하게 되었다. 이번 스터디를 하면서 느낀 것은 개발 공부는 이론 정리와 실습이 항상 함께 가야하는데 이론 공부로는 어떤 영감?을 얻는 단계인 것 같다. '막연히 쿼리를 더 잘 짜고 싶다, 결과 보장하는 쿼리를 짜고 싶다'는 마음으로는 더 잘되지가 않는다. 종종 개발 커뮤니티를 보면 해당 질문이 가끔 올라오고 답변으로 실무를 추천하는데 바로 투입되야하는 상황에서 실력을 바로 늘릴 수는 없다. 그러려면 때로는 지루하고 진득하게 이론을 볼 필요가 있는데 이번 ..
주제선정과 아이디에이션
·
Essay/Learning Essay
보호되어 있는 글입니다.
JUNCTION ASIA 2022 후기
·
Essay/Learning Essay
지난 8월 참석하고 싶었던 Junction Asia 해커톤에 다녀왔습니다. 어떤 후기를 작성할까 하다 현장감을 느낄 수 있는 사진을 올려봅니다. 해커톤 전체적인 모습이였습니다. 넓은 벡스코 공간에 책상들이 쭉 있었고 48시간동안 이 공간에서 해커톤이 이뤄졌습니다. 개회식 전 입장 시간에 디제잉 시간이 있었습니다. 개회식이었고 핀란드에서 오신 분입니다 ㅎㅎ 첫날 트랙 설명하는 시간인데요. 4개의 트랙이 있었고 어떤 것을 중점으로 보는지 필수 요건은 무엇인지 설명해주는 시간이였습니다. ZEP, Microsoft, AWS, Chainapsis 이렇게 4개 트랙이 있었습니다. 금요일 저녁 6시부터 일요일 저녁 6시까지 48시간동안 이어졌던 해커톤이었는데요. 중간에 뻐근한 느낌이 들 때쯤 요가 클래스가 있었고 앉..
이슈트래커 프로젝트 회고
·
Essay/Learning Essay
깃헙의 issue를 비슷하게 만들어 보는 프로젝트로 3주간 진행되면서 마지막 프로젝트였다. 이슈에는 레이블, 마일스톤, 코멘트등 연관된 도메인이 많아 JPA를 공부하기 좋은 프로젝트였다. 그리고 기존까지는 API가 업무 도메인에 초점이 맞춰져 있었다면 이슈트래커는 업무 도메인은 평범하나 CRUD가 반복되는 API작업이 많아 오히려 마음에 들었다. 첫 프로젝트인 todo를 하면서 반복되는 작업 속에서 전체 구조등 다시 리팩토링 해야하는 부분들이 생긴다는 것을 어렴풋이 느꼈기에 그런 부분들을 더 피부로 느끼면서 개발에서 어떤 것이 부족한지 더 공부해야 하는 영역은 어떤 것인지 직접 느껴보고 싶었다. JPA 익히기 JPA는 2번째 적용하는 것인데 처음부터 큰 도메인인 이슈 CRUD를 개발하려고 하니 시작이 지..
airbnb 프로젝트 회고
·
Essay/Learning Essay
airbnb 프로젝트 회고 에어비엔비 프로젝트를 마스터가 선정한 이유는 무엇일까 에어비앤비는 GPS로 인식되거나 사용자가 작성한 검색어 기반으로 검색 위치에서 가까운 숙소를 찾아준다. 공간 데이터를 다루게 되는데 일반적인 도메인과 다른 것은 카테고리 안에 속한 데이터를 보여주는 것이 아닌 위치 기반으로 반경을 설정하여 데이터를 추출한다. 반경 내에 있는 데이터는 어떻게 추출할 수 있을까? 이것이 이번 프로젝트의 업무 도메인이다. 예전에는 공간 데이터 추출을 위해 CLOB등의 데이터형태로 저장된 지도 데이터를 사용하였다고 한다. 이번 프로젝트를 통해서 데이터베이스에 공간정보를 저장하는 데이터 타입이 있다는 것을 알게 되었다. 새로운 도메인을 접하면서 내가 공부했던 과정과 겪은 어려움을 적어보려고 한다. 데..
반찬가게 프로젝트 - 공식문서 읽는 법, 유의미한 삽질
·
Essay/Learning Essay
2주간 프로젝트를 진행하면서 배운 것들을 적어보았다. 사용기술 Spring Data JDBC [△] OAuth [] nginx를 통해 java application tomcat서버와 통신 셋팅 [] 배포 프로젝트 때 배운 점 Spring Data JDBC 자료가 별로 없어서 공식문서를 보면서 기술을 익힐 수 있는 기회가 되었고 , 막연하고 읽기 힘들었던 공식문서 읽는 방법을 감을 잡은 것 같아 뿌듯했다. 새로운 기술을 적용하면서 기술과 상관없는 것들을 삽질하는 일도 많았고, 그 과정들을 적어보려고 한다. 내가 파악한 공식문서 읽는 법 1 먼저 근간이 되는 개념을 알기 그래야 전체적인 흐름을 잡을 수 있는데 근간이 되는 개념이 무엇인지 어떻게 알 수 있는가? 그것 또한 공식 문서에 나와 있었다. All S..
Todo만들기 - 회고
·
Essay/Learning Essay
Todo 프로젝트가 끝나고 다른 사람의 코드를 보면서 내 코드를 다시 확인하고 있다. 내가 남의 코드를 보는 방식은 맨 처음 사람 코드는 기술 지식을 이해하는데 노력을 많이 하는 사람 것을 처음 보고 그 코드는 꽤 자세히 보는 편이다. 그러면서 내 코드를 다시 보는데.. '몇 일전의 나야.. 왜 이렇게 했니..' 이불킥하고 싶은 코드를 적어본다. 이렇게 잘못된 코드를 작성한 이유는 기초지식을 간과한 부분 때문이라 생각해서 정리해 놓는다. setter에 객체 자신을 매개변수로 넣기 그러면서 메서드 이름도 그냥 setter인게 좋다고 생각하는데, 그 이유는 그래야 더 명확하게 이게 setter인지 알 수 있지 않을까?해서이다. 그래도 결국은 내가 이해하기 편하게 insert라 했는데 다시 봐도 setter가..