코딩하는 그루트
블로그
전체 142024. 11. 05.
0
<워밍업 클럽 2기 - 백엔드 클린 코드, 테스트 코드> 후기
워밍업 클럽 참여 후기지난 한 달 동안 클린 코드와 테스트 코드 주제의 강의를 들으며 시간을 보냈다.두 개의 강의를 모두 수강해야 하다보니 일과 후 강의를 듣고 공부하는 것만으로도 시간이 빠듯했다. 처음엔 익숙한 내용이라 여유롭게 공부했지만 방심하는 순간 진도가 쌓여 버려 다급하게 몰아서 하고는 했다. 후반부에는 미션 수행을 위해 외출 중에도 강의 자료(+코드)를 보며 학습했다.스스로 평가를 해보자면 밤샐정도는 아니지만, 한정된 시간동안 열심히했다..! 하지만 급하게 한 경우도 많아서 다시 복습해야 할 것 같다. 그럼 워밍업 클럽에 참여하며 느낀 후기를 남겨본다. 1. 강의강의는 실습 중심으로 직접 코드를 작성하며 다양한 내용을 설명하는 방식이었다. 강의 자료는 내용을 떠올리기 위한 참고용으로 좋은 정도이고 코드 위주로 진행되었기 때문에 복습하려면 별도로 정리가 필요했다. 하지만 이러한 방식이 큰 도움이 되었다. 2. 미션모두가 열심히 참여해서 놀랐다. 덕분에 나도 중간에 포기하지 않고 끝까지 해낼 수 있었다. 미션을 하나씩 해결하면서 리팩터링의 막막함도 점차 해소되었고, 어디서부터 시작해야 할지 감이 잡히기 시작했다. 중간 중간의 QNA의 답변들도 많은 힌트가 되었다. 학교 과제(인프런 강의 미션도)는 피드백을 받기 어려운 점이 고민이었는데 워밍업 스터디에서는 다른 사람들의 코드 작성 방식을 볼 수 있어 큰 도움이 되었다. 이를 통해 새로운 코딩 습관을 배우고 기본기를 다질 수 있었다. 마지막으로, 꿀팁을 가득 담아 좋은 강의를 만들어 주신 박우빈님께 감사드립니다.
백엔드
・
인프런
・
인프런워밍업클럽
・
스터디2기
2024. 10. 25.
0
<워밍업 클럽 2기 - 백엔드 클린 코드, 테스트 코드> 4주차 발자국
강의 수강수강한 강의: Practical Testing: 실용적인 테스트 가이드학습 내용 요약Mocking에 관해 배웠다. 여러 stub과 mocking 기법에 관해서 배우며 정리하는 시간을 가졌다.노트 중 일부말고도 private method에 관한 테스트나 Classicist VS. Mockist 부분에서는 어떤 것이 어떤 상황에 어울리는지 등을 배웠다. 회고이번에 Mock과 Stub애 관해 개념을 제대로 잡으면서 잘못하고 있었던 부분들을 점검할 수 있었다.이번 주를 마지막으로 강의를 모두 완강하게 되었는데 테스트 부분은 수강하며 여러모로 반상하게 되는 시간이기도 했다. 왜 테스트를 하는지, 어떤 관점에서 바라보는지가 매우 중요했고 직접 짜는 것을 보며 배우니 추상적인 부분도 코드로 풀어내는 것을 볼 수 있어서 실전 감각을 익히기 좋았다.미션해결 과정Mock, Stub에 관한 어노테이션들을 정리하고 수도코드로 된 테스트 케이스를 직접 어떻게 짤 것인지 제시해보는 미션을 받았다.모든 테스트 케이스 모두 사용자 하나와 게시글이 필요해서 이러한 공통된 부분은 @BeforeAll에 배치했다. 나머지는 늘하던대로 Given, When, Then 형식으로 작성했다. 실제 코드 작성은 없어서 금방 끝났었다.회고Spy를 사용해본적이 아직 없는데 Spy를 사용해서 테스트 코드를 더 짜봐야겠다는 생각이 들었다. 실제 사용 사례를 좀 더 찾아봐야겠다!그리고 뭔가 마지막 미션이 너무 무난해서 제대로 한건지 궁금하다. 다른 사람의 수행한 결과물도 보며 복습해봐야겠다.
백엔드
・
클린코드
・
자바
・
워밍업클럽2기
・
워밍업2기
2024. 10. 20.
0
<워밍업 클럽 2기 - 백엔드 클린 코드, 테스트 코드> 3주차 발자국
강의 수강수강한 강의s: Readable Code: 읽기 좋은 코드를 작성하는 사고법, Practical Testing: 실용적인 테스트 가이드학습 내용 요약이번주는 클린코드를 완료하고 테스트에 관한 강의로 넘어갔다.Test 필요성, TDD, BDD 등을 배우고 실제 클린코드에서 리팩터링한 코드를 짜보는 시간을 가졌다.회고개인적인 사정(코테, 면접, 스터디, ...)으로 미션 7 이후로 진도 조절에 실패해서 강의자료를 보면서 이해 안 되는 것 위주로 빠르게 수강하고 있다. 뭔가 정신 없이 밤이나 새벽에 하다보니 되게 힘들었다. 오늘 몰아서 진도를 정상화시키고 월요일 과제는 좀 더 여유롭게 할 수 있도록 해야겠다...미션해결 과정스터디카페를 잡고 테스트를 짜보았다. 대충 개념이나 어떻게 짜면 되는지는 이해가 됐는데 막상 시작하려니깐 되게 막막했다. 일단 특수한 모델 객체부터 검증해나가며 테스트를 점진적으로 추가해가다 보니 풀리기 시작했다.하다가 내가 원한 모든 테스트케이스를 완성하지는 못했다. 외부에 의존하는 사이드 이펙트를 다루는게 좀 어려웠다. Scanner나 이상한 데이터를 주입했을 때도 테스트하고 싶었는데 실패했다.회고Scanner 같은 부분을 테스트하려고 하는데 stdin까지 원하는대로 컨트롤하려니깐 이상했다. 외부에 의존하는 부분을 만들려다 그 코드가 엄청 길어지니깐 굳이 Class를 직접 갖다 않고 Mock으로 원하는 방향으로 만들어 주는게 자연스러워보이기 시작했다.한번 Application, PassMachine 코드를 Mock으로 외부 디펜던시를 만들고 검증해보려했는데 한참 삽질하다가 실패했다. 마침 아직 못 본 섹션 7의 Mock이다. 얼른 섹션 7을 수강하고 내가 생각하는 방향이 맞는 점검해보고 다시 시도해볼 예정이다!
백엔드
・
클린코드
・
워밍업클럽2기
・
자바
・
워밍업2기
2024. 10. 13.
0
<워밍업 클럽 2기 - 백엔드 클린 코드, 테스트 코드> 2주차 발자국
강의 수강수강한 강의: Readable Code: 읽기 좋은 코드를 작성하는 사고법학습 내용 요약이번주는 OOP, SOLID 원칙에 이어서 실제로 적용해보는 연습을 많이했다.특히, 실제 코드를 기반으로 코드를 어떻게 다음고 리팩터링할 수 있는지 현실적인 접근 방안을 많이 배웠다.회고깔끔하게 코드를 만들고 리팩터링을 어떻게 하라는지는 이해됐다. 하지만 이걸 어떻게 실제로 적용할지는 또 다른 문제였다...그래서 그런지 Day 7 미션이 되게 많은 도움이 되었다. 미션 처음에는 방대하진 않지만 여러 클래스로 나눠진 코드를 바로 크게 개선하려고 하니 부담스럽고 어렵게 느껴졌다. 하지만 차근차근 메서드를 추출하고 적용해가다보니 점점 어떻게 구조를 개선할지 보이게 되어서 되게 재밌었다.미션해결 과정위에서 말했듯이, 코드 실제로 리팩터링하는 미션을 받았다. 회고배운 내용을 토대로 차근차근히 작은 부분부터 인지적으로 읽기 쉬운 구조로 고치고 더 뻗어나가서 책임, 역할에 관한 분배를 나누고 메시지를 정제?하며 확장하기 좋은 코드를 만들어갔다. 되게 새로운 경험이었고 앞으로도 실제 코드를 개선할 때 어떻게 할지 감을 잡을 수 있는 좋은 미션이었다.
백엔드
・
클린코드
・
워밍업2기
・
자바
2024. 10. 06.
0
<워밍업 클럽 2기 - 백엔드 클린 코드, 테스트 코드> 1주차 발자국
강의 수강수강한 강의: Readable Code: 읽기 좋은 코드를 작성하는 사고법학습 내용 요약이번주는 가볍게 추상, 인지 부하를 줄여주는 코드 작성법, SOLID 위주로 공부했다.회고이번주는 익숙한 내용이 많아서 쭉쭉 진도를 나갈 수 있었다. 뒤에 가면 어렵지 않을까?역시 매주 미션이 주어지니 목표가 있어서 훨씬 의욕적으로 수강하게 되는 것 같다.계속 인프런 사이트에 접속하다보니 예전에 할인하길래 사두고 방치한 강의도 다시 보게 된다. 문득 이렇게 여유로운 날에 모두 공부해봐야 겠다는 생각이 든다. ㅎㅎ인프런의 노트 기능을 처음 써봤는데 내용을 상기하기 좋았다. 이미지도 첨부되어서 그냥 아무 맥락 없이 내 개인 노트에 남기기 보다 노트 기능으로 남겨두니 더 맥락있게 볼 수 있어서 좋았다. 앞으로도 활용해볼 것 같다.미션해결 과정이번주는 간단한 미션이라 큰 무리없이 진행할 수 있었다.회고간단한 코드도 직접 고쳐보고 내용을 적용해볼 수 있어서 좋았다. 원칙들을 내 언어로 풀이하는 것도 재밌었고 이해도를 높여주는 것 같다.앞으로도 아직 나에게 생소한 원칙/개념이 있다면 나만에 언어로 풀이해보면 좋을 것 같다.
백엔드
・
클린코드
・
워밍업클럽2기
・
자바
2024. 03. 19.
2
[워밍업 클럽 0기 - 백엔드] 참여 후기
"인프런 워밍업 클럽 0기 - 백엔드" 참가 후기입니다.참가한 계기참가하게 된 계기는 기본기를 기르고자하는 마음 60%, 호기심 40%? 때문입니다.백엔드 프로그래머를 지망하는 만큼 자바로 실무를 하게 될 가능성이 높은데 이때까지는 이상하게 FastAPI, NestJS, ASP.NET과 같은 프레임워크를 많이 사용했었습니다.그러면서도 자바는 상당히 익숙했습니다.학교 수업을 들으며 자바로는 오히려 Client 프로그래밍을 훨씬 많이 한 것 같습니다. 학우들은 자바를 다 알아서 눈에 보이는 작업물을 보여주기에는 자바 Swing만한 것이 없었던 것 같습니다...아무튼 학교를 빠져나와서 백엔드 지망하는 분들이랑 얘기나 스터디를 하다보면 항상 예제로 나오는 것이 스프링이었습니다. DI, 컨테이너와 같은 컨셉도 소개될 때마다 예시로 등장하는 것이 스프링이고 스터디를 하다가도 다른 분이 예시로 보여주는 것도 스프링일만큼 매일 등장해서 아.. 계층 나누고 주입해주는 것은 비슷한데 자바가 훨씬 자료가 많고 추상화가 더 잘되어있구나 싶었습니다. 안 해봐서 잘은 모르지만 무엇보다 완성도가 높은 느낌이 들었습니다... 몇 년 전에 Node 진영에 ORM을 공부할 때는 자료가 너무 없어서 JPA 코드를 보면서 공부했기도 했습니다.프로젝트 끝날 때마다 Spring Boot는 해보려고 마음 먹고는 했는데 이번 기회에 입문했습니다. 기본적인 개념도 익히고 적절하게 매일 1시간 정도 과제를 고민하고 해결하며 직접 코드를 짜볼 수 있어서 좋았습니다. 다른 스터디 참여자분의 과제 코드도 볼 수 있어서 공부가 많이 된 것 같습니다.다른 프레임워크에서 넘어온만큼 보이는 것도, 예전에 제가 실수한 것도 떠올라서 강사님의 라이브 영상이나 Q&A 내용을 보면서도 많은 팁을 얻었습니다.참가하며 남긴 기록들학교가 개강하고 다른 취준 일정이랑 겹치면서 점점 시간에 쫓기고 빨리해야 했어서 마지막에 몰아서 해버렸지만 후... 아무튼 완강까지 성공했습니다.후기강의는 백엔드 개발에 입문하는 사람이 대상입니다. 그렇다 보니, Git, HTTP나 서버-클라이언트 등의 개념도 입문자를 위한 설명을 포함됩니다. 다른 MVC 프레임워크 경험한 분은 30~50% 정도는 익숙한 내용일 수도 있을 것 같습니다. 개념에 맞춰서 잘 쪼개어 있고 강의 설명이 정말 깔끔합니당.. 이런 분이 강의를 하시구나 했습니다. 저는 아무래도 시간에 쫓기며 웹 개발을 많이 했기에 여러 내용들은 점검해가는 과정이라 생각하고 열심히 수강했습니다.그래도 난이도가 낮은 경우 빠르게 보고 덮은 다음, 스스로 찾아보면서 코드를 구현해보았습니다. 매일 라디오 듣듯이 따라가며, 다른 유사 MVC 프레임워크에서 추구했던 것도 비교하며 학습했습니다. 다른 분들의 질답도 많은 공부가 되었습니다. 고민의 깊이가 다르시더라고요!!배운 것최종적으로는 자바의 역사와 주변 지식, JDSL, Lombok, 코드를 보는 관점 등 여러 키워드를 얻을 수 있어서 유익했습니다.이전에는 VSCode를 많이 썼는데 이 참에 인텔리제이의 단축키도 익숙해질 수도 있었습니다.자바에서 자주 쓰는 단축키 CheatSheet을 만들어보는 것은 어떤가요?다른 사람의 과제랑 코드를 볼 수 있는 것도 좋은 경험이었습니다. 스터디를 매우 열심히 참여하시던 분들이 많아 놀랐습니다. 그러다보니 저도 기운을 받아서 더 공부하고 찾아봤던 것 같습니다ㅎㅎ.앞으로도 파이팅해서 만들고 싶은 프로젝트를 하나 만들어보려고 합니다. To Inflearn, 최태현 지식 제공자님. 재밌고 유익한 스터디 만들어주셔서 감사합니다!
백엔드
・
인프런
・
인프런워밍업클럽
・
스터디0기