블로그
전체 14#카테고리
- 백엔드
#태그
- 인프런
- 인프런워밍업클럽
- 스터디2기
- 클린코드
- 자바
- 워밍업클럽2기
- 워밍업2기
- 스터디0기
- 학습일기
- 발자국
- 워밍업-클럽-0-기
- 백엔드
- SpringBoot
2024. 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기
2024. 03. 07.
0
워밍업 클럽 - 백엔드 3주차 발자국
자바와 스프링 부트로 생애 최초 서버 만들기 (링크) 강의를 스터디를 하며 남기는 3주차 발자국(회고)입니다.마지막 회고드디어 강의를 완강했다.배운 것강의를 들으며 기본적인 API 개발과 JPA 사용법을 알 수 있었다. 설명과 강의가 짧게 끊어지며 잘 설계되어 있어서 강의를 보지 않고 혼자 복습할 겸 짤 때도 되게 수월하게 짤 수 있었다.기본적인 강의가 끝나고 난 후에는 여러 기술과 팁을 소개 받을 수 있었다.QueryDSL, gradle, 보일러플레이트 코드를 제거하기 위한 lombok 등 추가적으로 공부해야 하는 여러 키워드들을 얻었다.propertity와 같이 여러 환경에서 작업할 떄의 팁도 얻을 수 있었다.느낀 점한편 개강하고 여러 일정이 겹쳐서 강의를 후반부를 몰아서 급하게 들었다. 강의 자료를 보며 다시 복습하며 몇 개의 내용을 블로그에 남겨보려 한다.미션말고도 미니 프로젝트를 할 때는 강의 자료를 보지 않고 해보려고 했다. 이때 생각보다 버벅거렸고 사소한 부분을 빠뜨려서 버그가 나고는 했다. 이는 내가 스프링에 관한 지식 부족해서 그렇다고 생각한다. jakarta와 같은 내부 패키지를 보며 스프링 프레임워크가 제공해주는 마법적인 일들을 다시 차근히 살펴보아야 겠다는 생각도 든다.아직 2주차 회고에서 언급했던 배포 자동화도 하지 못해서 다음주부터 이것도 추가적으로 진행해보려고 한다.
백엔드
2024. 03. 03.
0
워밍업 클럽 - 백엔드 2주차 발자국
자바와 스프링 부트로 생애 최초 서버 만들기 (링크) 강의를 스터디를 하며 남기는 두 번째 발자국(회고)입니다.2주차에서 학습한 내용2주차에서는 jdbc를 직접적으로 사용하며 sql문을 날리는 것이 아닌 Spring Data JPA를 이용해서 Repository를 구현하는 법을 배웠다. 다른 ORM 문서에서도 JPA라는 단어가 계속 등장했는데 이제는 이것이 뭐를 말하는지 정확하게 알게 되었다 ㅎㅎ. 데이터베이스는 전공 수업이랑 인턴십을 하며 많이 다뤄보아서 빠르게 이해하고 넘어갈 수 있었다.다른 프로젝트를 사용하며 python alchemy랑 node prisma와 같은 ORM을 써본 적이 있어서 트랜젝션이나 엔티티에 대한 맵핑을 더 수월하게 익힐 수 있었다. JPA를 다루며 오히려 Java에 대해 더 자세히 공부하게 됐다. Checked Exception처럼 JPA에서 쿼리들을 어떻게 처리하는지 정확하게 내부 동작을 알아야 하겠다는 생각이 들기도 했다. 모르고 쓴다면 오히려 명시적으로 SQL을 쓰는 것보다 못할 수도 있을 수도 있다는 생각도 든다. 미션집에 데스크탑이랑 노트북 둘 다를 이용해서 개발하다 보니 MySQL schema가 필요할 일이 많아서 push해서 관리하기도 하고 미니 프로젝트 환경 구성도 끝났다. 미리 배포 부분은 이미 아는 내용이 많아서 빠르게 넘기면서 수강했다. 보면서 서버 설정도 완료했다. 지금 AWS는 사용하고 있어서 강의를 그대로 따라갈 수 없었다.따로 Oracle Cloud를 가입해서 학습하며 새로 만들었다. 강의를 보며 필요한 패키지들을 깔아뒀다.MySql은 Docker로 설치해뒀다.외우기 쉽게 호스트 이름은 apple로 해뒀다. 앞으로 미니 프로젝트 배포까지 자동화해서 공유해보고자 한다!파이팅!
백엔드
2024. 02. 27.
0
워밍업 클럽 - 백엔드 7일차 과제
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! 강의 7일차 과제입니다.(강의 링크)7일차 과제는 JPA를 이용하는 것이다.문제 1. 이전의 6일차 과제를 JPA를 이용하도록 바꿔보기먼저 JPA를 사용하는 서비스를 새로 만들기 위해 FruitService 인터페이스를 만들었다.public interface FruitService { FruitCreateResponse CreateFruit(FruitCreateRequest request); FruitSellResponse sellFruit(FruitSellRequest request); FruitStatResponse getFruitStat(FruitStatRequest request); }그리고 기존의 FruitMySqlRepository에 의존하던 서비스는 FruitServiceV1으로 이름을 바꾸고 FruitServiceV2를 만들었다.FruitServiceV2.java@Primary @Service public class FruitServiceV2 implements FruitService { private final FruitRepository fruitRepository; public FruitServiceV2(FruitRepository fruitRepository) { this.fruitRepository = fruitRepository; } @Override public FruitCreateResponse CreateFruit(FruitCreateRequest request) { Fruit fruit = fruitRepository.save(new Fruit(request.getName(), request.getWarehousingDate(), request.getPrice(), false)); return new FruitCreateResponse(fruit); } @Override public FruitSellResponse sellFruit(FruitSellRequest request) { Fruit fruit = fruitRepository.findById(request.getId()).orElseThrow(() -> new IllegalArgumentException("해당하는 과일이 없습니다.")); fruit.setIsSold(true); fruitRepository.save(fruit); return new FruitSellResponse(fruit.getId()); } @Override public FruitStatResponse getFruitStat(FruitStatRequest request) { List fruits = fruitRepository.findAllByName(request.getName()); long totalAmount = fruits.stream().mapToLong(Fruit::getPrice).sum(); long salesAmount = fruits.stream().filter(Fruit::getIsSold).mapToLong(Fruit::getPrice).sum(); long notSalesAmount = totalAmount - salesAmount; return new FruitStatResponse(salesAmount, notSalesAmount); } }JpaRepository를 위해 만들어서 사용한 FruitRepository는 다음과 같다.public interface FruitRepository extends JpaRepository { List findAllByName(String name); }이것으로 간단하게 리팩터링할 수 있었다.문제 2. 특정 과일을 기준으로 과일 수 세기Fruit를 이름으로 가져오도록해서 구현했다.@Override public FruitCountResponse getFruitCount(FruitCountRequest request) { List fruits = fruitRepository.findAllByName(request.getName()); return new FruitCountResponse(fruits.size()); }그리고 SQL문의 카운트를 당연히 지원하지 않을까 싶어서 찾아보았다. 그리고 다시 countByName으로 리팩터링했다public FruitCountResponse getFruitCount(FruitCountRequest request) { long count = fruitRepository.countByName(request.getName()); return new FruitCountResponse(count); }문제3. 미판매이며 특정 금액에 관한 범위 이내의 과일 목록 가져오기option에 따라 다른 쿼리(JPA 메서드)를 사용할 수 있도록했다.요구사항을 보고 레포지터리에 필요한 Jpa 메서드를 바로 추가했다.List findAllByPriceGreaterThanEqual(Long price); List findAllByPriceLessThanEqual(Long price);다음의 메서드를 이용해서 Fruit 서비스에 getFruitList 메서드를 추가로 구현했다.FruitServiceV2.java@Override public List getFruitList(FruitListRequest request) { String option = request.getOption(); List fruitListResponses = new ArrayList(); List fruits; if (option.equals("GTE")) { fruits = fruitRepository.findAllByPriceGreaterThanEqual(request.getPrice()); } else if (option.equals("LTE")) { fruits = fruitRepository.findAllByPriceLessThanEqual(request.getPrice()); } else { throw new IllegalArgumentException("잘못된 옵션입니다."); } for (Fruit fruit : fruits.stream().filter(fruit -> !fruit.getIsSold()).toList()) { fruitListResponses.add(new FruitListResponse(fruit)); } return fruitListResponses; }실행 결과는 다음과 같다.현재 데이터를 보면 2000 가격 이하로 안 팔린 사과는 1월 20일 창고날짜로 두개가 나와야 한다.MySql Fruit 테이블요청 결과를 확인해보니 잘 나왔다.하지만 굳이 스트림 API로 안 팔린 과일을 필터링 할 필요가 없었다.SQL WHERE 조건을 어떻게 Jpa에서 하는지 추가로 찾아보아서 개선했다.그래서 수정된 새로운 FruitRepository는 다음과 같다.public interface FruitRepository extends JpaRepository { List findAllByName(String name); long countByName(String name); // List findAllByPriceGreaterThanEqual(Long price); findAllByPriceGreaterThanEqualAndIsSoldFalse(Long price); // List findAllByPriceLessThanEqual(Long price); findAllByPriceLessThanEqualAndIsSoldFalse(Long price); }AndIsSoldFalse로 안 팔린 것만 가져오도록 했다.호출해서 확인해본 hibernate가 생성하는 쿼리이다.WHERE NOT(F1.is_sold)로 알맞게 WHERE문으로 추가되었다. 쓸모없는 stream.filter가 사라진 서비스의 코드는 다음과 같다.@Override public List getFruitList(FruitListRequest request) { String option = request.getOption(); List fruitListResponses = new ArrayList(); List fruits; if (option.equals("GTE")) { fruits = fruitRepository.findAllByPriceGreaterThanEqualAndIsSoldFalse(request.getPrice()); } else if (option.equals("LTE")) { fruits = fruitRepository.findAllByPriceLessThanEqualAndIsSoldFalse(request.getPrice()); } else { throw new IllegalArgumentException("잘못된 옵션입니다."); } for (Fruit fruit : fruits) { fruitListResponses.add(new FruitListResponse(fruit)); } return fruitListResponses; }실행 결과는 동일했다. 결과는 같지만 내부적으로는 서버에서 필터링하지 않고 데이터베이스에서 필터링하여 더 작은 데이터가 오가게 되었다.GTE 옵션도 테스트해보았다.잘 된다 😀
2024. 02. 25.
0
워밍업 클럽 - 백엔드 1주차 발자국
자바와 스프링 부트로 생애 최초 서버 만들기 (링크) 강의를 스터디를 하며 남기는 발자국(회고)입니다.이때까지 개발하면서 스프링 부트는 한번도 써보지 않기도 하고 급하게 달려왔던 적이 많아서 고민이 있었다. 취준(면접준비, CS준비, 알고리즘 준비, ...)을 하다보니 아무래도 추가로 프로젝트를 하기는 힘들었는데 입문자를 위한 스터디를 연다는 인프런 배너를 보고 참가하게 되었다.참가한지 1주가 지나고 있는 지금 강의의 반을 수강했다.이때까지 환경 구축, 기본적인 네트워크 지식 / HTTP / MySQL / Spring Container, 레이어 나누기를 배울 수 있었다.아무래도 나는 스프링의 영감을 받아 만든 여러 프레워크 등을 써었다보니 익숙한 내용이 많다. 그래서 스스로를 점검할 겸, 사소한 의문점들을 검색해가며 하루에 3시간 정도를 투자하며 학습하고 있다.추가적으로 궁금한 API는 따로 공부해보고 싶은 마음이 생겨서 앞으로의 내용은 좀 더 추가적으로 검색해보며 학습해보려 한다. 과제를 변형시켜서 확장해보아도 좋을 것 같다. 매일 있는 미션이 학습에 큰 도움이 된다. 강의를 덮고 혼자 구현해보고 사소한 오류를 겪으며 익숙해지고 있다. 잘 모르고 개발하고 있는 것은 아닌지 점검하기 좋다. 한편 과제를 하다보니 여러 Warning이 쌓여가는데 이것을 앞으로 좋은 방향으로 해결도 해보고 질문도 적극적으로 해보아야겠다. 파이팅!
학습일기
・
발자국
・
워밍업-클럽-0-기
・
백엔드