약 4년이라는 단어를 나는 경력단절 기간으로도 쓰고 경력으로도 쓴다. 풀어서 쓰면 경력단절 기간이 근무 기간을 넘어서서 이렇게 표현해야 내 마음이 편안하기도 하다.정말 감사하게도 특성화고 커리큘럼만 따라가고 개인/팀 프로젝트 경험은 얕고 부족한 주니어의 스펙으로 스타트
프로그래머스 두 수의 나눗셈, 각도기, x만큼 간격이 있는 n개의 숫자 - Casting, 예외처리
프로그래머스 정수 제곱근 판별, 정수 내림차순으로 배치하기, 콜라츠 추측 - Casting, map, tailrec, when
프로그래머스 음양 더하기 - withIndex, map, foldIndexed
프로그래머스 없는 숫자 더하기, 핸드폰 번호 가리기 - filterNot, replace, regex
프로그래머스 제일 작은 수 제거하기 - removeAt, filter, minOrNull
프로그래머스 가운데 글자 가져오기 - with, run
프로그래머스 수박수박수박수박수박수? - repeat, 패턴 변경 대응
프로그래머스 내적 - zip
프로그래머스 약수의 개수와 덧셈 - 제곱근 범위 지정, Int 확장함수
프로그래머스 문자열 내림차순으로 배치하기 - toCharArray, toList
프로그래머스 부족한 금액 계산하기 - sumOf, fold, coerceAtLeast, let
프로그래머스 문자열 다루기 기본 - Regex
프로그래머스 행렬의 덧셈 - 다차원 배열의 연산 방식, 정적 배열의 size와 init
프로그래머스 직사각형 별찍기 - Method reference vs lambda
프로그래머스 최대공약수와 최소공배수 - tailrec 꼬리재귀 직접 사용하기
프로그래머스 3진법 뒤집기 - foldIndexed, radix 연산
Figma를 통한 Wireframing, Git 특강 듣기
기본적인 자기소개 페이지 만들기와 화면 공유를 통한 첫 코드 리뷰 진행하기
Branch를 이용해 랜딩 페이지를 각자 기본 조건에 맞춰 만들고 병합하는 식으로 공부 시도해보기와 개발 과정에서 맞닥뜨린 의존성, DB 명세, CORS 정책에 대해 고민하기
Firestore 사용하며 데이터 필드 고민하기, 모두의 랜딩페이지 Branch를 main으로 merge하며 리뷰하고 고생하기
Github Pages에 Secrets env까지 사용해서 배포하려다가 실패하기, 마감 회고하며 KPT도 작성해보기
팀에서 부족한 실력으로 미니튜터(자칭) 해보기, 코드카타 - 프로그래머스 크기가 작은 부분문자열
강의 들은 내용을 토대로 과제를 최대한 풀어보고 서로 리뷰하기, 코드카타 - 프로그래머스 최소직사각형
코드 리뷰로 강의 또 중간 점검하기, 개인 과제 예시에 맞추어 완성해 나가기, 코드카타 - 프로그래머스 시저 암호
진짜 수식 받는 계산기 만들기, 코드카타 - 프로그래머스 숫자 문자열과 영단어
1주차 과제 마무리하고 해설 듣기, 개인 과제와 공부를 팀끼리 뭉쳐서 하고 KPT 회고 하기, 코드카타 - 프로그래머스 문자열 내 마음대로 정렬하기
3주차 프로그래밍 심화 - 숫자야구 만들어보기, 코드카타 - 프로그래머스 K번째수 정렬
Kotlin 숫자 야구 만들기 기본, 코드카타 - 프로그래머스 두 개 뽑아서 더하기
튜터님에게 강의 많이 듣고 숫자 야구 기능 추가하기, 코드카타 - 프로그래머스 가장 가까운 같은 글자
재밌는 강의 듣기, 숫자 야구 테스트 코드 작성하기, 코드카타 - 프로그래머스 푸드 파이트 대회
Readme 작성하고 제출하고 튜터님의 해설과 비교하기, KPT 회고하며 아쉬운 점 남기기, 코드카타 - 프로그래머스 콜라 문제
숫자 야구 피드백 확인, Spring 강의 듣기, 코드카타 - 프로그래머스 명예의 전당 (1)
DDD 아키텍처, REST, Swagger 기초 공부하기, 코드카타 - 프로그래머스 2016년
Spring 숙련 과제 발제, DDD 설계 기반 강의로 서버 구조 계속 공부하기, 코드카타 - 프로그래머스 카드 뭉치
DB, JPA 관련 키워드 싸그리 다 공부하기, 코드카타 - 프로그래머스 과일 장수
Repository 작성을 위한 JPA 키워드 계속 공부
테스트와 인증방식, 객체지향과 캡슐화, 과제 기초 설계, 코드카타 - 프로그래머스 모의고사
과제 DDD Layer 설계하기, 코드카타 - 프로그래머스 소수 만들기
Entity의 SRP, Soft delete in JPA, 코드카타 - 프로그래머스 덧칠하기
서버 프로젝트의 Readme 작성하기, Entity-Dto Converter util 만들기, Entity-Dto Enum 검증에 대한 고민하기
1차 제출 피드백 적용하기, DTO의 공통 유효성 검사, Aggregate Root에 대하여, 챌린지반 수업 - Spring과 객체지향, 코드카타 - 프로그래머스 로또의 최고 순위와 최저 순위
Filter URI, Sort의 객체지향, N+1 Query, 불변성 검증과 유효성 검증의 차이, Spring MVC와 관심사 분리
Service 주입에서 Entity를 관리하는 방법, 불완전한 Entity에 대한 보증, Pagination을 위한 Spring data Pageable, 코드카타 - 프로그래머스 숫자 짝꿍
JPA 연관 관계 끊기, Spring에서의 Session 알아보기, 코드카타 - 프로그래머스 체육복
Spring security를 사용한 패스워드 암호화, 권한 체크의 방법, 과제 해설 세션 체크하기, 코드카타 - 프로그래머스 문자열 나누기
뉴스피드 프로젝트 - 이벤트, 명세서, ERD, 컨벤션등 기초 뼈대 잡기, 챌린지반 강의 - 클린 코드
PR 리뷰하며 도메인 완성하기, 간단한 Jwt token plugin 완성하기, Repository, Domain에 대한 추가적인 이해, 코드카타 - 프로그래머스 대충 만든 자판
최적화 고민하기, Claim 에서 버그내기, Spring security Form login 끄기
AuthService 분리, Repository Pojo interface로 감싸게 리팩토링하기, Swagger-ui에 Authorize 추가하기, JWT의 로그아웃 방식 알아보기, 코드카타 - 프로그래머스 둘만의 암호
카카오 소셜 로그인 구현하고 프로젝트 마무리하기, 코드카타 - 프로그래머스 햄버거 만들기
프로젝트 마무리하고 발표하기, KPT 회고, 코드카타 - 프로그래머스 성격 유형 검사
Kakao / Naver OAuth 구현하기, Spring AOP 찐하게 공부하기, 코드카타 - 프로그래머스 바탕화면 정리
Spring security 공부하기, 코드카타 - 프로그래머스 개인정보 수집 유효기간
인가에 대한 예외처리 Handler, QueryDSL 기본 알아보기
QueryDSL 활용하기, Kotest + Mockk 공부하기, 코드카타 - 프로그래머스 달리기 경주
과제 해설 보며 공부하기, 챌린지반 - 클린 아키텍처, 코드카타 - 프로그래머스 공원 산책
새로운 팀 프로젝트 초기 기획 소통하며 이거저거 다 설정하기
테스트 하기 쉬운 환경 만들기, 공통적인 인가 핸들링
프로젝트 2일차 - 공통 인가 구별하기
이전 비밀번호 제한, 리프레쉬 토큰 관리하기
프로젝트 마무리, 챌린지반 - Redis
백오피스 프로젝트 발표하기, KPT 회고
JPA 심화 - 영속성 컨텍스트, 연관관계 매핑, 유용한 기능들, 코드카타 - 프로그래머스 신고 결과 받기
Repository Interface, Projection, JPA 심화 챕터 마무리
Spring scheduler 쓰는 어플리케이션 만들어보기, Http-only 쿠키 써보기, 코드카타 - 프로그래머스 피보나치 수, 카펫
Fetch join + Pagination, Application runner, 챌린지반 - Batch, 코드카타 - 프로그래머스 예상 대진표
테스트 코드 - @DataJpaTest
JPA 실전 - Transactional, N+1, Lazy Loading
과제 - Fixture monkey, 다대다 관계를 단방향으로 바꾸기
과제 - 테스트, 공부 - AWS
과제 해설 세션, 챌린지반 - EDA, Spring Event
실전 프로젝트 - 동시성 제어 선착순 타임딜 쿠폰
DDD 세션
테스트 코드의 Transactional의 경계
트러블슈팅 - Unlock과 Commit의 틈새
테스트 코드 세션, 트러블 슈팅 - Spring context 테스트 코드 인스턴스와 Bean 주입
낙관적 Lock
Lettuce, Redisson, MySQL Lock 비교
대용량 프로젝트에 대한 세션, 실전 프로젝트 KPT 회고
최종 프로젝트 시작
챌린지반 - 로그와 모니터링
Spring AI
와인 추천 로직(1)
와인 추천 로직(2)
와인 추천 로직(3)
임베딩에 대해 이해하기 임베딩에 대해 완전히 오판하고 있었던 점은 인풋을 읽고 얼만큼 유사한 텍스트인지 알아서 판단하는 편한 기술 이라고만 여겨왔던 점이었다. 다만 내가 생각한 유사한 인풋은 사람이 생각하기에 유사한 텍스트였고 여기엔 사람의 상식, 지식적인 여부까지 포함된다고 보고 있었지만 사실 임베딩은 그냥 두 인풋의 일치도만 따진다는 점이 핵심이었...
아이디어 출발점이었던 Embedding에 대한 이런저런 과정을 열심히 거쳐서 어떻게든 시스템스러운 무언가가 완성이라도 된게 참 다행이었다. 이 튜닝 과정에선 사실 전문성이 조금이라도 있었다면 하지 않았을 실수들이 있었다고 생각하지만 자연어 처리라는 내용에 대한 이해도도 늘었고 일단 내가 재밌었고 성취감 있었으니 만족스러운 부분이 더 큰 것 같다. 와...
최종 프로젝트에선 크게 핵심 비즈니스 로직인 와인 추천을 담당하고 이후엔 그래도 나름 앱 클라이언트를 다뤄본 적 있으니 React로 프론트엔드 담당까지 맡게 되었다. 최종프로젝트인 만큼 눈에 보이는 정도의 결과물을 함께 제출해야 해서 어쩔 수 없었다.아무래도 백엔드 취
최종프로젝트 당시에 Route53에서 도메인을 구입하고 VPC, ELB등의 설정은 다른 팀원분이 다 해주셨고 이제 EC2 인스턴스 내에서 서버를 실행하는 일만 남았었다. 그 과정에 대해서 정말 무작정 일정에 맞춰 되는지부터 체크하는 데에만 급급했기 때문에 Spring을