본문 바로가기

Course31

4주차 회고 발자국 🐾 마지막까지 KPT 회고 프레임워크를 선택해서 작성해보려고 한다!Keep(만족, 지속하고 싶은 부분)마지막 4주차는 개인프로젝트는 잠시 stop하고 강의와 관련된 부분을 이어 나갔다.Kotlin, Springboot, MySQL, JPA, Docker/compose, Thymeleaf, Bootstrap으로 개발하고 GCP에 Docker로 배포하고 Domain을 구입하고, certbot nginx로 인증서를 발급받아서 https까지 적용했다.2주 쫌 안되게 걸렸는데, 신기했던 부분이 몇 가지 있었다. 첫번째, 코틀린은 언어의 특성으로 인해 주 생성자 부분에 인자를 나열하는 스타일, 주 생성자에는 파라미터만 받고 { } 본문에 val/var등을 붙여 프로퍼티를 만드는 방식, 주 생성자에는 최소한의 인자를 받.. 2025. 3. 29.
3주차 회고 발자국 🐾 2주차와 마찬가지로 KPT 회고 프레임워크를 선택해서 작성해보려고 한다!Keep(만족, 지속하고 싶은 부분)이번 3주차는 개인프로젝트에서는 프로젝트쪽에서는 조회 API를 만들었다. API 테스트에서는 mockMVC를 사용하지 않고, 실제 인증 엔드포인트를 호출하고, AccessToken을 받아서 Authorization 헤더에 넣어서 Project 목록을 가져오는 것을 RestClient로 작성했다.DB url은 src단과 test단에서 다른 곳을 바라보게 만들었다. 개인적으로는 컨트롤러->서비스->레포지토리->서비스->컨트롤러 로 흐르는 스택트레이스 요청&응답을 제대로 검증하기위해서는 실제로 사용하는 DB 벤더까지 맞춰야 한다고 생각한다.실제로 배포했다면 AWS 인스턴스로 요청을 날려보면 되겠고! 갠적.. 2025. 3. 28.
2주차 회고 발자국 🐾 1주차와 마찬가지로 KPT 회고 프레임워크를 선택해서 작성해보려고 한다!Keep(만족, 지속하고 싶은 부분)이번 2주차는 개인프로젝트에서는 RDB 모델링을 마친 뒤 엔티티를 정의했으며 현재는 조회 API를 만들고 있고, 강의에서는 Presentation Layer에 대한 부분을 수강했다. 강의가 개인프로젝트보다 좀 빠르지만, 그만큼 개인 프로젝트에 적용할 수 있는 부분에 대한 인사이트를 미리 얻어갈 수 있는 것 같아서 좋다.Problem(부족, 아쉬웠던 부분)또 내 과욕이 부른 스불재(스스로 불러온 재앙) 느낌의 아쉬운 부분을 써보자면.. RDB를 너무 현업과 비슷하게 만드는 것을 목표로 잡지 않았나 싶다..ㅎㅎ 뭐 어쩌겠어~ 벌린 일이니 해야지..!!강의에 대한 내용은 아쉬운게 전혀 없다!! JSP에서.. 2025. 3. 16.
1주차 회고 발자국 🐾 https://code-boki.tistory.com/231 좋은 회고란? (feat. 인프랩's SOL)좋은 회고란 무엇인가에 글을 작성하기에 앞서 인사이트를 주신인프랩의 직원이신 솔(Sol)이라는 닉네임을 사용하시고 솔퓨터라는 별명을 갖고 계신 소현님의 글을 먼저 공유하고 싶다!!이 글의code-boki.tistory.com먼저, 회고글을 작성하기 전에 회고법으로 사용할 수 있는 전략에 대해서 예전에 작성한 글이 있어서 다시 한번 공유해본다.종종 이런것들을 프레임워크라고 부르기도 한다.디자인 프레임워크, 회고 프레임워크, 백엔드 프레임워크...정해진 틀에 맞춰서 진행하는 것이다.나는 이 중 회고에 사용되는 KPT 회고 프레임워크를 선택해서 이번 한 주의 회고록을 작성해봤다.Keep(만족, 지속하고 싶.. 2025. 3. 9.
NEXT-STEP 도메인 주도 설계의 사실과 오해 수강 후기 강의 정보도메인 주도 설계의 사실과 오해 6기 수강벌써 1달정도가 지났지만, 약간의 거금(?)을 들여 Next Step의 코스 중 도메인 주도 설계의 사실과 오해 6기를 수강한 후기를 풀어본다10/27(일), 11/3(일) 2주. 2회. 각 오후2시~6시(4시간) 총 8시간에 걸쳐서 우아한형제들 테크살롱에서 오프라인으로 조영호님의 강의를 들었다NEXT STEP에서 유명한 강의는 자바지기, 큰 박재성님의 TDD 강의가 아닐까한다! 난 이 강의는 안 들어봤고, 이번에 처음 수강신청했다조영호님은 , 책을 만드신 저자분이시다!!강의 결제를 하고나서, Next Step으로 로그인을 하고 개인계정으로 들어가면 이렇게 강의 자료가 있는 모습을 볼 수 있다YouthCon때 왔었던 테크살롱을 또 와보니 신기했다 강의장.. 2024. 11. 26.
인프런 워밍업 스터디 클럽 2기 백엔드(클린코드/테스트코드) 수료식 참여 및 후기(feat. 우수러너 선정 😎) 인프런 워밍업 클럽 스터디 2기 오프라인 수료식 신청 🌱1달 동안 이어진 인프런 스터디에서 오프라인으로 수료식에 참여할 사람들을 모집하고 있길래, 냉큼 신청했다스터디원들이 있는 디스코드 채팅방에서 만났던 분들, 내 블로그를 보고 수료식때 꼭 만나고 싶다는 분도 있었고 인프랩 사무실 안에 방문해볼 기회가 얼마나 있을까 싶었다가는길에 저번 판교 퇴근길 밋업 - HTTP에서 후기를 올려서 당첨받은 스벅 아아쿠폰으로 목마름을 달래고 갔다..!!인프랩 직원분들 정말 감사합니다 :) 인프랩 도착 & 수료식 참여(11/01)판교테크노밸리스타트업캠퍼스 3동 5F에 있는 인프랩으로 갔다저번에 왔던 퇴근길 밋업은 1동 2층 더링크에서 열렸었다오픈되어 있는 인프랩 회사 문으로 당당하게 입장!!입구부터 초록초록한게 이뻤다... 2024. 11. 3.
4주차 회고 발자국 🐾 드디어 인프런 워밍업 클럽 BE 2기 스터디가 끝났다~!Keep강의를 보고 내용을 정리한 것도 좋았지만, 더 좋았던 점은 중간점검과 특별점검때 우빈님이 다른분들의 코드리뷰를 해주는 시간이었다다른분들이 Readme.md에 자신의 고민을 적어놨었는데, 같은 문제에 대해 정말 다양한 생각들과 해결법들이 나올 수 있다는 걸 보여줬다토론. 그것은 참 멋진 것 같다! Problem사실 되게 다양한 스케줄때문에 너무 바빴어서, 내가 정말 200% 못 쏟았구나 하는 점들이 몇 부분 있다집에 있을때는 온 집안일을 혼자 다하고 종종 요리도 하면서 암환자이신 아버지를 돌봤고, 몇몇 개발 행사들도 참여했고, 글또10기에 참여해서 그쪽 글도 구상하고 쓰느라 바쁘고, 취업준비중이라 코테, 기업과제, 면접 등을 치르느라 눈코뜰새없.. 2024. 10. 27.
Mission - Day 18 Q-1. @Mock, @MockBean, @Spy, @SpyBean, @InjectMocks 의 차이를 한번 정리해 봅시다.AnnotationPackageTargetActionMockorg.mockitoObject(PlainOldJavaObject, Java Bean)Mocking - 가짜 객체MockBeanorg.springframework.bootSpring Bean(ApplicationContext)Mocking - 가짜 스프링 빈Spyorg.mockitoObject(PlainOldJavaObject, Java Bean)Real - 실제 객체(부분 모킹)SpyBeanorg.springframework.bootSpring Bean(ApplicationContext)Real - 실제 빈(부분 모킹)In.. 2024. 10. 25.
3주차 회고 발자국 🐾 2주차와 마찬가지로 KPT 회고법으로 작성한다Keep테스트코드가 많아지고 Positive(Happy)/Boundary/Negative 계층도 테스트에 녹아있다면 과감하게 프로덕션 코드를 바꿀 수 있다테스트코드는 [문서]다나는 테스트코드에 도메인 지식이 녹아있다고 생각한다만약에 신규입사자가 들어왔다고 치자. 이분한테 "테스트코드 한번 차근차근 보세요!"라고 하면 내(우리) 프로젝트에서 중요하게 생각하는 부분이 다 이 코드 안에 녹아있다성공하는 경우, 예외가 발생하는 조건, 어떤 예외가 발생하는지 등..그런점에서 강의를 보면서 단위(유닛)테스트, Persistence Layer, Business Layer 등에 테스트를 작성하는 법을 배운 게 좋았다!Problem강의에서나 내 프로그래밍에서의 문제점은 없어보.. 2024. 10. 23.
Mission - Day 15 Layered Architecture 구조의 레이어별 테스트 작성법을 알아보았습니다.레이어별로 1) 어떤 특징이 있고, 2) 어떻게 테스트를 하면 좋을지, 자기만의 언어로 다시 한번 정리해 볼까요?Persistence Layerpersist라는 뜻은 "지속하다"라는 뜻을 갖고 있다프로그램에서 데이터의 persistence는 영속성을 뜻하며 프로그램이 종료되더라도 사라지지 않는 데이터의 성질을 의미한다이 개념을 살려서 JPA에서는 영속성, 영속화라는 특징을 갖고 있고, 편리하게 만든 hibernate의 data jpa가 아닌 순수 JPA에서도 EntityManager가 persist해서 엔티티를 데이터베이스에 저장하는 책임을 갖고 있다말이 길었지만, JDBC를 사용하던, Mybatis를 사용하던, JPA를.. 2024. 10. 22.
2주차 회고 발자국 🐾 1주차와는 다르게 KPT 방법으로 회고를 해본다 Keep강의 목차섹션1 - Intro강의 소개강의 구성강의에서 사용할 용어들예시 프로젝트 소개섹션 2- 추상(抽象)우리가 클린 코드를 추구하는 이유프로그램의 정의추상과 구체이름 짓기메서드와 추상화메서드 선언부추상화 레벨매직 넘버, 매직 스트링키워드 정리섹션 3 - 논리, 사고의 흐름뇌 메모리 적게 쓰기Early return사고의 depth 줄이기공백 라인을 대하는 자세부정어를 대하는 자세해피 케이스와 예외 처리키워드 정리섹션 4 - 객체 지향 패러다임추상의 관점으로 바라보는 객체 지향객체 설계하기 (1)객체 설계하기 (2)SOLIDSRP: Single Responsibility PrincipleOCP: Open-Closed PrincipleLSP: Lisk.. 2024. 10. 13.
1주차 회고 발자국 🐾 https://code-boki.tistory.com/231 좋은 회고란? (feat. 인프랩's SOL)좋은 회고란 무엇인가에 글을 작성하기에 앞서 인사이트를 주신인프랩의 직원이신 솔(Sol)이라는 닉네임을 사용하시고 솔퓨터라는 별명을 갖고 계신 소현님의 글을 먼저 공유하고 싶다!!이 글의code-boki.tistory.com지식공유자 박우빈님이 공유해주신 인프랩 에디터분의 글을 통해 알게된 좋은 회고에 대한 링크를 토대로 회고템플릿 중 하나를 선택해 이번주의 회고를 작성해본다 PMI 방식을 택해서 회고를 작성해본다 P - Plus. 좋았던 점일단 이번 스터디를 참여하기 전의 박우빈님의 Practical Testing 강의를 들었기때문에 우빈님의 점진적 학습방법이 정말 마음에 들었다영한님도 V0, V1.. 2024. 10. 6.
Mission - Day 4 1. 아래 코드와 설명을 보고, [섹션 3. 논리, 사고의 흐름]에서 이야기하는 내용을 중심으로 읽기 좋은 코드로 리팩토링해 봅시다.public boolean validateOrder(Order order) { if (order.getItems().size() == 0) { log.info("주문 항목이 없습니다."); return false; } else { if (order.getTotalPrice() > 0) { if (!order.hasCustomerInfo()) { log.info("사용자 정보가 없습니다."); return false; } else .. 2024. 10. 4.
Mission - Day 2 "추상과 구체" 강의를 듣고, 생각나는 추상과 구체의 예시가 있다면 한번 3~5문장 정도로 적어봅시다.일상 생활, 자연 현상, 혹은 알고 있는 개발 지식 등 어느 것이든 상관 없습니다. 추상에서 구체로, 또는 구체에서 추상으로 방향은 상관 없으나, 어떤 것이 추상이고 어떤 것이 구체 레벨인지 잘 드러나게 작성해 보아요 :) ex) 우리가 상대방에게 소리를 내어 말을 하고 듣는 과정을 구체 레벨에서 표현한다면? - 폐에서 나온 공기가 성대를 통과한다. - 이는 나의 입술을 통해 외부로 방출되고, 상대방과 나 사이에 있는 공기를 진동시킨다. - 공기를 통해 전달된 진동은 고막, 달팽이관 등을 거쳐 청각세포, 청신경을 통해 뇌로 전달된다.   추상: 어떤 이미지(형상)에서 그것을 뽑아낸다 (구체적인 정보들에서.. 2024. 10. 4.
Wanted 프리온보딩 BE 챌린지 8월 늦게나마 9월 말에서야 8월 2~3째 주에 있었던 원티드 프리온보딩 BE 챌린지 8월의 후기를 올려본다 숨가쁜 8월 달력정말 꽉 차 있던 8월 달력..ㅠ 바뿌수요일은 격주~3주 간격으로 아버지가 항암이 있으셔서 비워놨었다..!!(TMI)원티드 프리온보딩 기간에도 모의면접 기반인 JScode의 Java 스터디도 진행했었다여러모로 바밨기때문에 이제야 후기를 올려본다! Wanted Pre-onboarding BE Challenge(August)https://www.wanted.co.kr/events/pre_challenge_be_22 1차: 8.5(월) 20시 2차: 8.10(토) 10시 3차: 8.12(월) 20시 4차: 8.17(토) 10시" data-og-host="www.wanted.co.kr" dat.. 2024. 9. 28.
인프런 스터디(백엔드 클린 코드, 테스트 코드) OT 2024/09/27 OT 참여OT는 Google Meet에서 이루어졌다OT에서 AI 내용이 나와서 조금은 읭?하고 있었는데 우빈님의 다음 말을 위한 디딤돌 장표였다..큭 정리 - 내생각 결국 우리들은 어쩔수없이 미래에 AI와 함께 일하고 살고 있을 것이고 그들이 90%를 차지할 수 있지만우리가 실력 있는 개발자로서 그 남은 10%까지 인공지능에 대체되고 싶지 않다면 휴먼의 영역인 10%를 차지할만한 실력을 기르자!그리고 그것은 클린코드(우빈님 강의에선 읽기좋은 코드, 클린코드는 클린 아키텍처를 뜻하는 경우가 더 많다)와 테스트코드를 통해 채우면 된다고 하신다ㅎㅎ 나도 동의한다!! 테스트코드에서는 컴퓨터가 알 수 없는 비즈니스 영역이 드러가기 마련이고, 약간의 스포를 하면 Positive뿐만 아니라 Nag.. 2024. 9. 28.
인프런 워밍업 클럽 스터디 2기(백엔드 클린 코드, 테스트 코드) 신청 인프런 스터디 모집 Test Code / Readeable Code 강의를 내신 캐치테이블 우빈님강의 나온 순서가 Practical Testing -> Readable Code 였고, 먼저 테스트 강의를 완강한 상태였었다우빈님의 강의력이 너무 좋아서 다른 강의도 보려고 했었는데, 인프런에서 스터디를 오픈했길래 냉큼 신청했다 인프콘2024행사때 네트워킹시간에 우빈님이 계셔서 짧게 인사드리고, 강의 잘 보고 있다고 (이러저러한)한 후기 남겨드렸다고 했더니 바로 알아봐주셨다!!딱 강의에서 보던 모습 그대로..ㅎㅎ 인프런 워밍업 클럽 스터디 특장점 & 혜택 커리큘럼스터디 목적대부분 디스코드로 소통하면서, 강의를 보는게 대부분이긴하다하지만 중요한 포인트는 혼자 하는게 아니라 같이 한다는 것에 있다(같이 자라기) .. 2024. 9. 28.
JSCODE 스터디 후기(자바 1기) JSCODE라는 채널을 구독하고 보고 있었고, 커뮤니티에 스터디를 모집한다는 글을 보게 됐다그리고 여러 과목들이 있었지만, 자바가 1기란 소식을 듣고 스터디를 신청했다 JSCODE 스터디 신청https://code-boki.tistory.com/192 JSCODE 스터디 신청Youtube - JSCODE종종 영상이 올라오면 즐겨보는 IT 유튜브 채널이다네이버, 채널톡 등의 회사에서 지인들에게 인터뷰를 하는 영상이 눈길이 갔고최근에는 인프런에서 비전공자나 취준생들을 위한code-boki.tistory.com그리고 총 5주간의 스터디를 진행했다(매주 금요일 오후 8~10시 + a)스터디 과정은 1주씩 개인블로그에 공부해서 올리고, 이 내용을 토대로 온라인으로 모의면접을 하는 방식이었다모르는 사람들과 화상으로.. 2024. 9. 17.
5주차 스터디 노트 JVM & GC  JVM 구조에 대해서 설명해 주세요. 클래스 로더에 대해 설명해 주세요. JVM 메모리 구조를 자세히 설명해 주세요. 왜 Heap 영역은 Young Generation과 Old Generation으로 나뉘나요? GC란 무엇인가요? GC의 장단점을 설명해 주세요. GC에서 사용하는 알고리즘은 무엇이 있고, Java는 어떤 알고리즘을 사용하나요? Java 8 기준으로, GC는 어떤 방식으로 수행되나요? GC의 종류 또는 발전 과정을 아시는대로 말씀해주세요. GC의 실행 방식을 아는만큼 설명해 주세요. Java 8과 Java 11의 디폴트 GC 실행 방식은 어떤 것인가요? G1 GC에 대해 설명해 주세요. G1 GC의 Heap 구.. 2024. 9. 12.
4주차 스터디 노트 동시성 프로그래밍동시성과 병렬성의 차이점을 말해주세요.Thread-Safe하다는 것이 무슨 의미인가요?가시성 문제와 원자성 문제에 대해 설명해 주세요.가시성 문제에 대해 조금 더 자세히 설명해 주세요. 여러 스레드가 모두 한 CPU의 캐시 메모리를 읽으면 가시성 문제가 발생하지 않을 것 같은데, 어떻게 생각하시나요?자바의 동시성 이슈를 해결하는 방법을 아는만큼 설명해 주세요.volatile 키워드가 무엇인가요?synchronized 키워드가 무엇인가요?synchronized의 문제점은 무엇이 있나요?synchronized는 어떻게 구현되어 있나요?atomic하다는 것이 무슨 의미인가요?atomic 키워드가 무엇인가요?CAS 알고리즘에 대해 설명해 주세요.Vector, Hashtable, Collectio.. 2024. 9. 5.