한화시스템 BEYOND SW CAMP 11주차 회고

신유정·2024년 1월 26일
2
post-thumbnail

😎 주인장의 나불나불



우리 기수에 공유한 자소서에도 적혀 있는 독서모임을 목요일에 다녀왔다!
모임 이름은 [가랑비 북클럽]이고 슬로건은 "삶에 촉촉히 스며드는 독서를 지향합니다"이다. 독서모임을 통해 꾸준히 책을 읽은지 1년 6개월이 지났다. 하루에 1장이라도 꾸준히 무언가를 하려는 습관을 기르려 노력하고, 버스 안이나 카페에서 책을 읽는 내 모습이 되게 있어보여서(?) 특히 어려운 책이나 유명한 책은 일부러 대놓고 꺼내놔야 함ㅋㅋㅋㅋ 그런 점들이 원동력이 되고 있는 것 같다. 원래 1년에 1권도 책을 안 읽었던 사람인데, 이러한 변화가 정말 뿌듯하다!

2024년 새해의 첫 책을 정하게 돼서 무슨 책으로 할지 많이 고민하다가 눈에 띄는 제목의 [도둑맞은 집중력]이라는 책을 골랐다. 제일 충격이었던 부분은 학생의 집중력은 19초, 성인의 집중력은 3분이라는 사실이다ㅋㅋㅋㅋㅋ 요즘 내 집중력도 누구한테 도둑맞은 것 마냥 없어져서 400p 분량을 읽을 수 있을까 걱정이 앞섰다.

저자는 사람들의 집중력이 점점 감소하는 것이 개인보다는, 변화하고 있는 사회의 문제라고 주장한다. 빠른 속도로 여러가지 일을 처리해야 하고, 잠도 줄고, 초가공식품을 먹고.... 근본적인 문제를 해결하기 위해서는 우리가 힘을 합쳐 나아가야 된다고 말한다. 어쨌든 3시간동안의 이야기를 이끌어 나가야 하는 입장으로 PPT도 열심히 만들고, 책을 꼼꼼히 읽어 갔다. 다행히 책이 재미있었고, 너무 좋았다는 의견이 많아 상당히 뿌듯했던 이번주였다.

⭐️ 배운내용

Board 프로젝트 기본 CRUD로 MVC버전, RestFul버전
-> 객체를 생성자 방식으로 new 키워드를 사용해 생성했는데, 해당 방식은 매개변수 개수의 유연성과 매개변수 순서의 유연성이 떨어지기 때문에, 이런 단점들을 극복한 builder 패턴으로 객체를 생성했다. 유연한 건 맞지만, 객체를 생성할 때마다 일일이 .속성명()을 통해 값을 설정하는 게 오히려 불편했다. new 방식에 너무 익숙해져 있어서 그런가? 아무튼 이번에도 간지나는 mz코드 흡수 완.
builder

-> Author테이블과 Post 테이블 간의 관계성(1:N)을 연결하면서 @OneToMany @ManyToOne @JoinColumn 어노테이션을 배웠다. 특히, FK를 관리하는 쪽이 연관관계의 주인이라는 점과, 연결성에 따라 한 쪽에는 ManyToOne이 붙을 수 있지만 다른 한 쪽에는 연결정보가 안붙을 수 있다(꼭 짝을 지어 발생하지는 않는다. 필요한 쪽에서 다른 쪽만 연결해줘도 된다)는 것이 꼭 알아야할 점이다.

-> fetch join에 대해 배웠다. JPA는 기본적으로 지연로딩 "LAZY" 방식을 지향한다. "그때그때 데이터가 필요한 상황이 발생하면 데이터를 가져와, 메모리&작업 효율성을 지키겠다"는 것이다. 하지만 이 경우 쿼리를 N+1번 날려야 하기 때문에, 화면에 모든 관련 데이터까지 뿌려줘야 하는 경우에는 즉시로딩 "EAGER" 방식을 사용해 1번의 쿼리로 연관된 두 테이블 사이에서 필요한 데이터들을 가져온다.
LAZY한 JPA

-> 연관된 테이블의 한 쪽 데이터를 수정하거나, 데이터를 삽입/삭제할 때 JPA는 dirtychecking과 cascading 기능을 지원한다. 더티체킹은 변경감지 기술이라고도 불리며, 한 군데를 “수정”하고 저장했을 때, 그 한 쪽이 가지고 있는 다른 쪽이 연쇄되어 수정되는 것을 말한다. 캐스캐이딩은 "삽입, 삭제" 작업을 수행했을 때, 수정한 쪽과 관련된 다른 쪽이 연쇄되어 수정되는 것을 말한다. 더티체킹도 4글자고 변경감지도 4글자니까 이렇게 외워놓으면 캐스캐이딩은 나머지라고 생각하면 조금 쉽다...
dirtychecking VS cascading

-> @Scheduled과 @Transactional 어노테이션을 사용한 게시글 예약 작성 기능을 추가했다. cron 표현식은 정처기에서만 봤었는데 직접 실습하고, 정해진 시간에 특정 로직이 처리되는 게 너무너무 신기했다. 훈쓰... 신난 모습 오랜만....

-> 테스트 코드 작성하는 방법과 TDD. TDD도 말로만 들어보고 시험에서 보기만 해봤지 안녕? 너도 구면이네 직접 Test 코드를 고려한 구현을 하려니 조금 어려웠다. 그치만 가짜 객체를 만들고, 가짜 메서드를 만들어서 사용하는 정형화된 패턴이 있는 것 같아 몇 번 해보면 조금 익숙해질 것 같다.


아마 스프링에서 가장 어렵고 중요한 부분인 것 같다. 아직 관계성 설정 부분과 연쇄 작용이 일어나는 부분을 100% 이해한 건 아니지만, 앞으로 복습을 통해 꾸준히 깊게 알아가 볼 예정이다.

⭐️ 좋았던점

🔥 비전공자 분들 의지 다시 불탐, 내가 더 불탐
이제 프로젝트가 슬슬 시작되니 비전공자 분들이 더 열심히 하려고 하신다. 그들의 열정은 76563453도........ 개인적으로 최종 프로젝트 시작하기 전에 부족한 점들을 채울 수 있는 마지막 한 달이라고 생각한다. 열심히 하는 사람들한테 질 수 없지. 무조건 1등으로 열정적인 사람보다 1도 더 뜨겁게 움직인다.

💎 갓생살이 인정받다
좋은 마음으로 합격자소서를 공유했는데, 사실 안에 내 인생사가 거의 담겨 있어서 다들 읽어보시고 "쟤는 열심히 사는 애네.. 뭘해도 되겠다"라고 생각해주시고 말씀해 주셨다. 워낙 하루를 꽉 채워 쓰는 것을 좋아하기도 하고, 그러다 보니 그렇게 인정해주시는(?) 말을 들으면 뿌듯한 변ㅌㅐ라서 앞으로 더 열심히 살아서 원하는 결과를 얻고 싶다.

⭐️ 아쉬웠던점

🤯🤯 어려워어려워
스프링은 처음인 나,, 나도 매끄럽게 이해하고 잘 따라가고 싶은데 마음처럼 안될 때가 많이 있었다. 오타로 데이터가 잘 안 넘어온다거나, 테스트를 목적 적합하게(강사님이 자주 쓰시는 말) 하지 못해 아쉬움이 많았던 한 주였다. 그래도 강사님께 질문하고, 에러 코드들을 고쳐가면서 한 번에 매끄럽게 돌아가는 사람들보다는 에러 슈팅 능력이 개미 눈꼽만큼은 올라갔겠지….! 해내야지 어쩌겠어~ 새로운 거 배우는 거 쉬울 줄 알았니 유정아? 아무튼 이번 주 강사님이 내주신 과제에 최선을 다한다면 어렵다고 느꼈던 부분들에 대한 이해도가 많이 올라갈 것 같다.

🫠😵‍💫컨디션 조금 하락
이번주는 수업 내용도 스프링에서 제일 중요한 이슈들을 다뤘기 때문에 어려웠고, 개인적으로 하는 독서 모임에서 운이 좋게도 새해의 첫 달 발제자를 맡아서, 독서모임 날에 이것저것 잘 준비해 가고 싶어서 ppt도 민들고 하다보니 평소보다 해야 될 일이 많아 컨디션이 조금 떨어졌다. 오늘도 수업을 듣다가 숨 쉬는데 콧속이 조금 따가워서 주말에 본가에서 푹 쉬면서(라고 하지만 과제하기 알고리즘 풀기 자소서 쓰기 알바가기) 회복해봐야겠다

⭐️ 계획

  1. 모각코 디스코드 방에서 나오지 말기
  2. 2월 안으로 영어 성적 갱신하기
  3. 알고리즘도. 무조건. 꾸준히. 가져가기

무엇보다.................. 수업 열심히 듣고 열심히 복습하기

profile
기록하는 것을 좋아하는 개발자입니다. 작은 기록이 모여 제 삶의 방향성을 만들어 갑니다.

2개의 댓글

comment-user-thumbnail
2024년 1월 27일

든든한 유정님이 그립네욧~~!@ 반장님 홧팅~!

답글 달기
comment-user-thumbnail
2024년 1월 29일

당신은 못 하는 게 뭐조????????

답글 달기