210301-0307-TIL

Jane·2021년 3월 1일
2

TIL

목록 보기
37/103
post-thumbnail

3월 1일 (월)

  • 웹으로 구현하기는 못했지만 미션 7 요구사항까지 어느 정도 반영하여 미션 6 PR을 보냈었는데, 오늘 피드백을 받았다.
  • 피드백 받은 부분을 전부 수정해서 다시 리뷰 요청을 드렸고 머지되었다. 미션을 시작하기 전에는 람다, 스트림, 함수형 인터페이스, Optional, 예외 만들기, 팩터리 메서드, TDD 등 익숙하지 않은 것 투성이었는데 어느새 자연스럽게 사용하고 있었고, 코드 리뷰 과정을 거치며 코딩 컨벤션도 자연스럽게 익힐 수 있었다. 과정이 끝나면 GUI도 적용해보고 싶다.
  • 부모님 결혼기념일이라 따로 다른 공부는 안 하고 가족과 시간을 보냈다.

3월 2일 (화)

  • 마스터 클래스 (스프링 부트 환경설정, heroku 배포)
  • 김영한 님 스프링 입문 강의 완강
    • MVC와 템플릿 엔진, API
    • 회원관리 예제 - 백엔드 개발
    • 스프링 빈과 의존관계
    • 회원 관리 예제 - 웹 MVC 개발
    • H2 데이터베이스, 순수 JDBC, 스프링 통합 테스트
    • 스프링 JdbcTemplate, JPA, 스프링 데이터 JPA
    • AOP
    • 실습 진행 repository
  • 나름 정성들여 신청서(?)를 작성했었는데 참가자로 선정되어 목요일에 우아한 형제들에서 주관하는 채용 이벤트에 참석할 수 있게 되었다.

3월 3일 (수)

  • heroku.com을 이용해 Q&A 사이트 배포

    https://spring-boot-qna.herokuapp.com/

  • 자료구조 수업
  • spring boot로 게시판 만들기 프로젝트를 시작했다.
  • 구현한 기능
    • 회원가입
    • 프로필 보기
  • 처음에는 ConcurrentHashMap에 데이터를 저장하는 식으로 구현했다가, H2 데이터베이스를 사용하는 방식으로 변경하였다.
  • 그룹 코드 리뷰
    • 아직 많이 구현하지는 못했지만, 코드 리뷰를 많이들 부담스러워 하시는 것 같아 먼저 리뷰를 받겠다고 했다. 코드스쿼드 들어오기 전에 "모르는 것을 부끄러워하지 말자."라고 마음을 굳게 다잡고 와서 코드 리뷰 시간마다 질문봇처럼 물어보고 있다...

3월 4일 (목)

  • 속이 울렁거려 오전 수업에 참여하지 못했다.
  • 구현한 기능
    • 개인 정보 수정
    • 로그인
    • 로그아웃
  • 자꾸만 에러가 나 Whitelabel Error Page를 마주하지만 너무 재밌다. 스프링 부트 최고야...
  • 우아한형제들 개발자 채용 설명회 참여
    • 경력직이 아니라 포지션에 지원할 수는 없었지만, 우아한 형제들의 개발 문화를 간접 체험해보고 싶어 신청했다. 그런데 데일리 스크럼, 티타임, 코드 리뷰 등 코드스쿼드랑 많이 비슷하다는 느낌을 받았다. 붙여주면 나도 잘할 수 있는데...🤣
    • 사소한 부분들이 다 자동화되어 있는 것 같았다. 포비의 강의를 듣다보면 반복되는 작업은 자동화하라고 강조하시는데 뭔가 그 철학이 녹아있는 것 같다.
    • 인재상으로 실패를 두려워 하지 않는 사람, 예상하지 못한 문제 발생 시 해결 방안이 아니더라도 자기 생각을 말할 수 있는 사람이 언급되었다. 나는 그런 사람인가?

3월 5일 (금)

  • 구현한 기능
    • 본인의 개인정보만 수정할 수 있도록 변경
    • 질문하기
    • 질문 목록 보기
    • 질문 상세보기
    • 질문 수정, 삭제
  • 자료구조 수업
  • 개발로 불태웠다. CS10보다 체스 만들기 프로젝트가 훨씬 재밌었는데, 스프링 부트는 더더더 재밌다😆
  • 미션 1 PR을 보냈다. 사실 단계별로 진행하고 PR을 보내야 하는데 하다보니 재밌어서 흐름을 끊고 싶지 않았다... 어쩌다보니 뒤에 미션을 많이 구현해버려서 앞으로 한 단계씩 리팩토링 한다음 PR을 보내려고 한다.

3월 6일 (토)

  • 디버깅 하느라 아무것도 구현하지 못했다. 어제부터 발생한 에러를 해결하지 못해 12시간 넘게 삽질 중이다.
  • 코드스쿼드 슬랙에 질문을 남겼는데 Dan, Dion, Bat 등 많은 분께서 도움을 주셨고, 결정적으로 Ragdoll 덕분에 문제를 해결할 수 있었다. 주말 저녁에 발벗고 나서서 도와주시는 모습을 보고 정말 감동받았다.

  • 1단계 PR이 머지되었다.
  • 코드리뷰에서 EntityManager의 역할과 직접 주입 시 주의사항, SQL과 JPQL의 차이에 대한 질문을 받았다. 학습 후 아래와 같이 답변을 남기기는 했는데 제대로 이해한 건지 모르겠다.
    1. 엔티티 매니저가 어플리케이션과 데이터베이스 사이에서 엔티티들을 저장하고 있는 영속성 컨텍스트를 관리하는 역할을 하고있다고 알고있습니다.
    2. SQL은 데이터베이스 테이블, JPQL은 엔티티 객체를 대상으로 쿼리를 질의한다고 알고 있습니다.
    3. 검색을 해보니 EntityManager는 여러 쓰레드가 접근할 시 동시성 문제가 발생할 수 있다고 합니다. 이를 해결하기 위해 @PersistenceContext 애노테이션을 사용하여 의존성을 주입받으면 스프링 컨테이너가 초기화될 때 원본 엔티티를 상속받고있는 프록시 객체가 초기화되고, 이후 엔티티 매니저 호출 시 프록시를 통해 엔티티 매니저를 생성하기 때문에 Thread-safety가 보장된다고 합니다.
  • 피드백 받은 내용 중 이해가 안 가는 내용이 있어 질문을 남겼는데 아직 답변을 받지 못했다.

3월 7일 (일)

  • 구현한 기능
    • data.sql에 테스트 케이스 추가
    • 답변 추가 (댓글 기능)
    • 답변 목록 보기
  • 어제 슬랙에 질문 올린 건 어떻게 알았는지 알고리즘이 호눅스의 동기부여 - 질문 잘 하는 법이라는 강의를 추천해줬다. 질문을 하는 것 자체가 개발자 세상에 기여를 하는 것이라는 말이 가장 기억에 남는다.

4개의 댓글

comment-user-thumbnail
2021년 3월 8일

제인 정리하는거 보면 항상 감탄스럽네요!
인간 로봇 제인~ 💻

1개의 답글
comment-user-thumbnail
2021년 3월 9일

좋은내용 잘보고갑니다~~ㅎㅎ 역시 공부하다 힘들땐 지선님 벨로그보면서 마음다잡아요 ㅎㅎ

1개의 답글