22-10-04~22-10-10 개인 스터디 회고록

BRINCE·2022년 10월 11일
0

서론

이렇게 또 5주차 개인 스터디가 끝났다.

바로 전주 까지 내가 부족했다고 생각했던 부분들을 복습했고, 이번주 같은 경우에는 본격적으로 프로젝트 제작 강의를 시청하며 작은 게시판을 만드는게 목적이었다.

하지만 생각했던 것보다 게시판 하나 만드는데 굉장히 신경쓸게 많았던것..!

거기다가 나는 백엔드를 공부하는 찌랭이.. 앞단을 짜는게 굉장히 막막했던 것..!

예체능을 몇년동안 해왔던 나는 내가 입는 옷과 내가 하는것 먹는것은 신경을 쓰지 않지만 .. 남들한테 보여지고 평가하는 것에 있어서는 굉장히 예민하게 작업하는 성격을 가졌다..

그렇게 이번주도 실질적으로 진행한건 크게 얼마 없고 뻘짓을 굉장히 많이 한 기분.. 👀 그럼 어떠한가.. 당장 내일 취업해야하는게 아닌이상 나는 앞으로 살날이 굉장히 많이 남았다

성급하게 막 이거저거 만들려고 하기 보다는 최대한 내가 갖고 갈 수 있도록 공부방법을 바꿨다.

첫주에 적용했던 애자일 프로세스 방식의 스터디도 결국엔 뭔가 나를 옥죄이는 기분이 들어 오랫동안 진행하기엔 적합하지 않다는 생각이 들어 이번주는 자유롭게 공부를 진행했다 😇

본론

이번주는 크게 이렇게 진행했다.

  • 게시판 만들기 깃허브 프로젝트 생성 후에 실무에서 사용하는 개발 방법 따라서 커밋,푸시,머지,풀 적응 시키기
  • 게시판 도메인 설계/ ERD 그리기 / 유즈케이스 그리기
  • JPA Repository 이용해서 CRUD 방식 REST API 구현하기
  • HAL Explorer 적용해서 Data REST API 구현하기
  • Querydsl 이용해서 상세 검색 기능 구현하기
  • 타임리프,부트스트랩 이용해서 뷰 디자인하기
  • 스프링 부트 책으로 임의 클래스 관련 Dto,Dao 작성 후에 REST API 구현하기

그렇게 이번주는 정~말 크게 잡자면 게시판 만드는 프로젝트 강의를 들으며 클론코딩 하기 였는데, 나는 단순히 그냥 따라치는 걸로만은 뭔가 만족이 안되더라.

아무리 결국엔 나중에 밥먹듯이 하게될거라 찍먹하듯이 넘겨도 괜찮을거라고 말하는 사람도 있겠지만 , 나는 그게 안됐다 ㅋ

결국 어느순간에 터졌냐면 내가 생각보다 기본적으로 알아야하는 어노테이션들에 대해서 아무것도 몰랐던것 같았다. @RestController 이런게 뭘 뜻하는건지 전혀 모르는 느낌이었다 ㅎㅎ.

그래서 게시판 만들기 도중에 CRUD 방식 REST API 구현 하기 쯤부터 책을 한권 다시 구매해서 처음부터 이론정리도 할겸 공부를 하나 더 늘렸다.

그렇게 이번주는 DTO DAO 작성까지 해봤지만 이건 아직 게시판 프로젝트에서 적용을 안했기 때문에 좀 많이 어색하긴 하지만 스프링 부트를 진행하면서 특정 코드를 보았을때 어떠한 의미를 지니고 있고 어떤 결과가 나올지 해석이 되는 지경에 이르렀다.

약간 언어를 갓 배운 아기가 처음으로 문장을 구사하는 느낌이랄까.. 😵🫠

게시판 만들기 깃허브 프로젝트 생성 후에 실무에서 사용하는 개발 방법 따라서 커밋,푸시,머지,풀 적응 시키기

깃허브 같은 경우에는 단순히 내 공부전용 리포를 생성해서 거기에 모든걸 몰아넣고 , 프로젝트도 TIL 용으로 사용하고 있었다.

하지만 실무 개발자들은 리포를 프로젝트 단위로 생성하고 커밋도 절대로 한번에 몰아넣지 않고 변경사항 단위별로 커밋을 하는것이었다.

지금 듣고있는 강의가 결국엔 게시판을 만드는 강의지만 어떻게 보면 뭔가 회사를 다녀야지 알 수 있는 부분들을 알려주시는 것 같아서 좋았다.

그렇게 이 주제에선 크게 커밋을 날리는 방법, 피쳐브랜치 생성후에 이용하는 방법, 풀리퀘스트 / 머지 가 어떻게 진행되고 코드리뷰와 프로젝트 관리방법 등을 배웠다. 이정도면 어디가서 같이 협업할때 욕먹을일은 없을듯 😽

게시판 도메인 설계/ ERD 그리기 / 유즈케이스 그리기

우리 김은호 센세께선 설계만 몇시간 내내 하셨다. (강의 영상 내에 현재시간이 매번 새벽이셨다는.. 그런데도 말을 너무 잘하시고.. 리스펙)

먼저 유즈케이스를 작성했다. 연관관계 를 설계한다고 생각하면 쉽다. 내가 어떤 부분에 접근해 어떤걸 조회할 수 있고 그게 어떤걸 필요한지? 이런걸 draw.io 를 통해서 그림을 그렸다.

REST API (게시글 업로드,삭제,수정,조회 회원가입,회원탈퇴 등등) 를 설계하고

데이터들을 연결할 테이블,컬럼 이름과 입력값들을 설계했다.

개발에 가장 중요한건 완벽한 설계 인것 같았다. 강사님께서 굉장히 공을 들여 설계 방식을 하나하나 그려나가시면서 가르쳐주셨다. (이런분한테 계속 배우면 실력 쑥쑥 늘을듯..ㅠㅠ)

JPA Repository 이용해서 CRUD 방식 REST API 구현하기

JPA 디펜던시를 추가해서 엔티티 클래스를 작성하고 Jpa repository 를 적용시킨 후에 리포지토리 메소드들을 이용해서 간단하게 테스트코드를 작성해보았다.

스프링 부트로 게시판 만들기 -1
스프링 부트로 게시판 만들기 -2

강사님께서 Dto 를 먼저 작성 안하시고 리포지토리로 테스트코드를 작성하시길래 이게 더 편한방법인가 ? 했는데 '아직' 작성을 안하신거였다. 이래서 기본이 중요하다 (엔티티에 직접 접근하는것은 엔티티에 의존을 하게 만들어 Dto 를 이용하는게 좋다고 한다..)

HAL Explorer 적용해서 Data REST API 구현하기 / Querydsl 이용해서 상세 검색 기능 구현하기

강사님께서 뭔가 슥슥슥 하시더니 그냥 게시글을 조회 작성 삭제 할 수 있는걸 만드셨다. hal explorer 를 적용하셨다고 한다.

그냥 이걸로 다 되다보니까 특별히 신경쓸 부분은 크게 없었다.

굳이 뽑자면 검색이 불완전했다. 단어를 검색하면 그 단어'만' 가진 글이 검색된다거나...

그걸 Querydsl 로 해결했다. Q클래스를 생성해서 컬럼별로 검색 필터를 설정할 수 있었다.

스프링 부트로 게시판 만들기 -3

스프링 부트로 게시판 만들기 -4

타임리프,부트스트랩 이용해서 뷰 디자인하기

타임리프 같은 경우는 전에 이름과 기능을 대충 들어봤을때, 백엔드 개발자들을 위한 쉽게 뭐 페이지를 짜주는 라이브러리? 인줄 알았다 ; 근데 단순히 그냥 뭔가 디자인을 더 간소화하게 해줄 수 있는 기능이었다.

진짜 앞단을 꾸밀줄 모르는 개발자들을 위한건 부트스트랩이었다.

그냥 단순히 소스 가져와서 붙여넣기하면 지가 알아서 다 꾸며줌.

여기서 관건은 그냥 내 개인 프로젝트라고 아무거나 가져오면 안된다는거다..

어떻게든 보기 나쁘지 않게 꾸민다고 여기에 몇시간을 썼다;

템플릿 코드를 가져와도 기능이 동작하지 않거나, 폼 자체가 내가 원하는 디자인으로 나오지 않고 줄바꿈이 된다던가.. 이런 문제가 있었으나 내가 하나하나 태그 소스들을 바꿔가면서 결국엔 만족할만한 뷰를 뽑아냈다!

그렇게 임시로 꾸며낸 디자인..

김은호 센세는 대충 기능에 충실한 템플릿을 가져오셔서 붙이셨는데
나는 용납되지 않았다.. (나.. 프론트엔드를 해야할지도..?)

어찌저찌 해서 내 마스터 오브 서칭 능력을 이용해 템플릿 소스들을 가져왔다.

이정도면 나쁘지 않은듯 ?😌

좋았던점

  • 기존의 애자일 프로세스 방식으로 시간과 할일을 미리 정해서 진행했던 공부방법은 처음에는 공부에 적응시키기에 굉장히 좋은 방법이었지만 결국 내 성격과는 맞지 않는다고 느꼈다.
    (난 누가 정해주지 않아도 알아서 잘하니까 🫵🏻)
    그래서 자유롭게 이거하고싶을때 이거하고 저거하고싶을때 저거하고 하니까 뭔가 마음도 안정되고 집중도 잘되는 기분이다. 결론적으론 이거로 인해 이번주도 얻어가는 정보들이 많았다 ㅎㅎ

  • 개인적으로 내가 프로젝트를 진행할때 앞단은 어떻게 꾸며야하나 .. 하는 걱정이 공부 첫 시작부터 있었는데, 걱정 안해도 될거같다는 확신을 얻었다

  • 이번주는 크게 봤을때 개발 방법을 얻어간게 제일 큰거같다. 앞으로도 많은 도움을 줄거같다. 여기에 내 방식대로 소스를 더하면 칭찬받는 동료가 될 수 있지 않을까 ?

  • 생각보다 설계도 복잡하고, 그에따른 미래에대한 걱정이 들 뻔 했는데 강의 들으면서 결국 돌아보니 크~게 어려워서 내가 애먹을만한 건 없을거같다는 생각이 들었다. 설계를 잘하면 코드도 간소화되니 그걸 보면서 안정이 된다. 나도 나중에 몇주 몇달 뒤면 저런거 안찾아보고 뚝딱 할 수 있을거같다는 희망이 생겼다.

  • 프로젝트 강의를 보면서 클론코딩으로 끝낸게 아니라 내가 책보면서 만들어뒀던 프로젝트에 최대한 안보고 나 혼자서 코드를 작성해보았고, 이걸로 인해서 뭘 작성할때 어떤걸 추가 안하면 어떤 오류가 생기고 이런거를 알게 되었다. 물론 문제 해결은 내가 몇시간을 써서라도 이거저거 해보면서 해결했다.

아쉬웠던점

  • 뭔가 배울게 많아지니 알고리즘에 소홀해졌다. 하루 1문제 해야하는데 아직 크게 '꼭해야해..!' 이렇게 와닿는게 없는 느낌.. 뭔가 더 개발 공부를 하고 코드 작성하는데 무리가 없을때 쯤 다시 풀기 시작하면 더 시너지 효과가 나려나.. 하는 고민이 있다.

  • 확실히 프로젝트 강의만 듣다보니 뭔가 강의가 길어질수록 집중력이 떨어졌던거 같았다. 결국엔 강사님께서 설명해주시고 작성해주신 코드들이 하나하나 부가설명이 없던것뿐 책에 나오는거랑 같기때문에 .. 집중이 안되면 받아쓰기 하던거 다른 프로젝트에 적용시키면서 내가 직접 뭘 개발한다는 생각이 들게끔 공부를 해야할것 같다.

  • 더 없는것같다..? 문제가 생겼을때 알아서 잘 해결했고.. 계획했던 방향대로 공부도 했고.. 부족한 부분은 책으로도 내손으로 코드 작성해가면서 복습했고.. 완벽해!

결론

확실히 공부 처음 시작할때 내 모습이랑 지금 내 모습이랑 비교해보면 진짜 다른 사람 된거같다고 할정도로 많이 적응이 된것같다.

딱 내가 춤 처음시작했을때랑 상황이 비슷하다. 그때도 진짜 열심히 했었는데.. 이 기세로 첫 취업까지 괜찮은 곳에 들어가 더 많은 경험을 했으면 좋겠다. 생각만해도 설레고..😭

저번 한달은 자바에 익숙해졌다면 이번 한달은 스프링에 익숙해지는게 목표인것같다.

목표가 자연스럽게 잡힌 기분 ? ㅎㅎ 이번달은 완벽하게 게시판을 하나 만들고 단순히 기능구현에서 끝내지 않고 이것저것 세부기능까지 추가해보는게 작은 목표다.

항상 새로운 일 시작할때 미래가 기대되면 생각했던거처럼 잘 풀렸던거같은데 개발공부도 그랬으면 좋겠다 ㅎㅎ

그럼 이만!

profile
자스코드훔쳐보는변태

2개의 댓글

comment-user-thumbnail
2022년 10월 12일

매 게시물마다 성장하시는게 보여서 앞으로가 기대됩니다!

1개의 답글