스파르타 단기심화 6기 오늘부로 스파르타에서 진행하는 AI를 활용한 백엔드 아키텍처 심화 과정을 시작하게 되었다. 본격적인 심화과정을 참여하기에 앞서 오늘부터 2주간 사전 캠프가 진행된다. 팀 노션 작성 MBTI와 각자 한마디씩 적고, 각자의 오늘 목표를 공유했다. 멤버카드 작성 단기 심화 동기들에게 자신을 설명하는 멤버카드를 작성했다. 나는 나의 성격...
기술 블로그 작성 첫 날 학습 매니저께서 공유해주신 아티클을 읽어보았다. 내용은 기술 블로그의 중요성과 함께 기술 블로그 작성을 장려하는 글이었다. 사실 많은 실력있는 개발자 분들이 이미 기술 블로그를 작성하는 것을 봐 왔고, 나도 또한 기술 블로그를 작성하기로 마음
입문주차 강의 (고민) 이전에 이미 한 번 배운 내용이라 강의 수강하는 데에 시간이 별로 안 걸릴 것이라고 생각했는데 생각보다 시간이 많이 걸리고 있다.

사전캠프 기간 동안 다음 내용으로 미니 프로젝트를 구현하게 되었다.💡상품을 등록하고 → 사용자가 주문하고 → 주문 정보를 조회한다

ORM (Object-Relational Mapping) 반복적이고 번거로운 애플리케이션 단에서의 SQL 작업을 줄여주기 위해서 객체와 DB의 관계를 매핑 해주는 도구 기존 JDBC 방식으로 DB를 직접 조작할 때 문제 1. 테이블을 직접 SQL에 따로 접속해 만들
학습관리 매니저님이 정성들여 써주시는 아티클을 읽고 배운 점과 느낀 점을 정리해 보았다.
SpringBoot 환경에서는application.properties에 DB 정보를 전달해 주면 이를 토대로 EntityManagerFactory와 EntityManager를 자동으로 생성해준다.
사전캠프 기간 미니 프로젝트를 마저 구현하기로 했다.

REST API는 HTTP 응답의 status와 header를 의미에 맞게 사용하고, 필요한 경우 body를 포함해 응답해야 한다.Spring MVC에서는 HTTP 응답을 표현하기 위해 ResponseEntity를 제공한다.응답 객체를 작성하기 위한 다양한 static

기술적인 문제나 여러 컴포넌트에서 공통적으로 사용하는 관심사를 처리하는 객체들은 수동으로 Bean을 등록하는 것이 바람직하다.이러한 객체들은 보통 기술 지원용 Bean으로, 공통 로그 처리와 같이 비즈니스 로직을 직접 담당하지 않으면서도 이를 보조하는 부가적이고 공통적

JWT 다루기 회원가입 로그인 구현 필터 Spring Security 프레임워크 Spring Security 로그인 Spring Security JWT 로그인 접근 불가 페이지 Validation Validation 예외 처리 CRUD 프로젝트에 적용하기

오늘부터 사전캠프 이후 본 캠프가 시작되었다.출석과 강의, 취업지원 등 캠프 진행과 운영에 대해 OT를 통해 설명을 받고 팀을 배정받아 팀원들과 자기소개를 하고 팀 규칙을 정하고, 나머지 시간에 강의를 들었다.오늘의 목표는 Validation까지 실습하는것! 오늘 일과

1️⃣ 기본 원칙👉 작은 타입 → 큰 타입 : 자동👉 큰 타입 → 작은 타입 : 강제 캐스팅2️⃣ 숫자 타입 크기 순서 (중요 ⭐)3️⃣ 자동 형 변환 (업캐스팅)✔️ 데이터 손실 가능성 없음4️⃣ 강제 형 변환 (다운캐스팅)✔️ 소수점 버림⚠️ 데이터 손실 가능5

if, else, for, while 등 제어문 내 실행문이 한 줄일때 {} 생략이 가능하다.그러나 나중에 코드가 추가되는 경우가 있고,제어문 범위를 명확히 하기 위해 중괄호는 사용하는것이 좋다.처음엔 x만큼 늘어나는 변수를 따로 두고 배열에 저장해줬는데 배열 인덱스로
아침부터 속이 불편해서 깼다. 독감을 옮았는지 몸살기도 있어서 오늘은 캠프에 결석을 하고 휴식을 취하고 저녁에 조금 공부를 했다.
오... 쓰고 나서 보니 오늘이 13일의 금요일이다. 어제 잠을 많이 잤더니 몸 상태가 훨씬 나아진 것 같다. 어제 JWT 로그인 강의를 듣다 말았는데 JWT로그인 부분은 어제 TIL에 합쳐서 작성했다.
오늘의 갈 길이 멀다!일단 강의를 듣는다😭회원가입을 진행할 때 사용자가 자신의 주소를 검색해서 전달하는 등 라이브러리 사용만으로 구현하기 힘든 부분을 미리 만들어진 주소 검색 API를 활용하면 해당 기능을 간편하게 구현할 수 있다.이러한 다른 API서버로의 요청을 간

Naver Open API 네이버 오픈 API 목록 오픈API 사용 신청 로그인 후 애플리케이션 등록을 한다. 다음 양식을 채워준 후 애플리케이션 등록을 마무리 해 준다. 내 애플리케이션 - 해당 애플리케이션 이름 에서 요청에 필요한 Client ID와 Clien

다른 Entity를 참조하기 위해 하나의 엔티티가 다른 엔티티 타입의 필드를 포함하는 형태로 표현된다. (이 관계가 DB 테이블에 실제 컬럼으로 존재하지는 않는다.)

이번 설 동안엔 꼭 Spring 강의를 끝내려고 했지만 이번 주 진짜 최악으로 컨디션이 안좋았다..🤯 다음 주엔 최상의 컨디션이 되길 바라며..😢
코드 카타 1. 나누어 떨어지는 숫자 조건맞는 요소 추가 + 가변배열->정적배열 List 방식 대신 stream을 사용할 수 있다. 2. 음양 더하기 배열[i] 앞에 부호를 붙여도 되나 싶어 해봤는데 이게 되네? 했던 코드😅 확인 결과 양수에 +를 붙여도 동작한

코드카타 1. 핸드폰 뒷자리 4자리만 남기기 처음에든 생각은 뒷자리 4자리를 저장한다. 앞 자리 수 만큼 *를 반복한다. 두 문자열을 합친다. 그런데 Java에서 Python의 '문자'*횟수 문법이 있는지 확실치 않았고, 문자열 더하기를 반복하면 시간이 오래 걸리기

오늘부터 3/12일까지 팀 프로젝트를 하게되었다.새로 만난 팀원들과 자기소개를 하고, 팀 규칙과 컨벤션을 작성하고 프로젝트 구현을 위한 기능 리스트와 ERD를 작성했다.
배열을 탐색해 가장 작은 수와 그 위치를 찾는다. 원본 배열을 하나 하나 복사하며 찾은 수라면 스킵한다.

코드 카타 문자열에서 가운데에 있는 글자 문자열로 반환 substring()을 사용하면, charAt() 두 번 쓸 필요 없이 계산을 직관적으로 할 수 있다. 조건문 없이도 가능:

코드카타 수박수박수박수~ 홀수일때 수, 짝수일때 박 와 이번 문제는 5분만에 풀었다! 코드카타를 매일 하니 코딩 감이 다시 살아난것 같다. 내적 예....? 저는 선량한 코더입니다만... 다행히 문제에 정의 식이 친절하게 주어져있었다. >a와 b의 내적은 a[0]

각자 원하는 도메인을 골라서 분배하는 방식으로 역할 분담을 맡았다. API구현에 경험이 적어 나는 구현이 늦는 편이라 생각해 먼저 팀원의 코드를 참고해 감을 잡을 수 있도록 후반부에 구현해도 괜찮을 리뷰 도메인을 맡고싶다고 했다.
오늘은 코드카타 대신 고봉밥 PR을 보며 오늘의 학습을 시작했다.

팀원이 작성한 회원가입, 로그인 코드를 통해 JWT인가 요청을 어떻게 처리하는지 공부하고 나머지 API에 인가 로직을 포함시켜 작성하기로 했다.

Review 도메인의 CREATE API 명세서를 다시 작성하면서 아주 자연스럽게 생각했다."아, 리뷰 화면엔 당연히 작성자 닉네임이 보여야지!"API 명세서를 수정하고 개발을 진행하는데,앞서 리뷰를 생성할 때는 로그인한 유저의 정보를 Security Context에서

오전 회의 오전 튜터님 피드백 >정리해서 주말중에 완성해 팀원들과 공유하기로! PR 머지 후에 내용에 대해 수정할 부분을 기록해두었다. 리뷰 작성시 N+1 문제 해결을 위해 설계 단계에서 분리한 통계 테이블에서의 Race Condition

이전에 create Service 코드를 짤 때 생각하지 못한 조건이나 잘못 구현한 것을 갈아 엎느라 너무 많은 시간이 소요됐다.때문에, 먼저 프랩 코드와 구현 방식을 구상한 뒤에 코드를 작성하기로 했다.(토요일 출근길 지하철에서 지피티와 함께...ㅎㅎ;)

새벽에도 개발은 계속된다~ 😪(졸면서 코딩중) 이미지 파일을 왔다갔다? 배달 앱 후기를 남길 때, 음식에 대한 사진을 올릴 수 있다. 그렇다면 이러한 음식을 프론트에서 보여줄 때, 사진파일이 직접 왔다갔다 하는 걸까? 정답은 따로 이미지를 호스팅하는 곳을 두고, 그
Spring Batch는 대량 데이터를 일괄 처리(batch processing) 하기 위한 프레임워크이다.Spring Batch는 보통 3단계 실행 구조,(데이터 읽기/가공/조작)5단계로 동작한다.근데 어디서 많이 본 기억이 나는데..? 뭔지 기억이 안난다Job은전체

새로운 팀과 함께 각자가 책임지고 할 수있는 주된 역할을 미리 정해두는 게 좋을 것 같다는 의견에 따라, 역할 분담을 했다.

Postman에는 요청을 여러 번 동시에 쏘는 기능이 있다.Postman 왼쪽 상단의 Collections 탭에서 API가 담긴 폴더를 클릭우측 상단의 Run 버튼Iterations: 10~20 (요청 횟수)Delay: 0ms (딜레이 없음)요청 횟수보다 적은 수량으로
코드카타 (오백년만) 부족한 금액 계산하기 원본 훼손 + 오버플로 위험 처음에 이 코드를 사용했는데 일부 테스트케이스에서 실패를 했다. 원본 잔액인 money를 훼손하고 또 계산 과정에 오버플로우가 날 수 있을 것 같아 long 변수로 뺐더니 테스트케이스는 통과되었다

더 최적화 할 방법이 있을까? 싶어서 AI에 물어보니 배열의 각 row를 변수로 해 참조하는 방식이 미세하게 더 빠르다고 했다. (+ 배열 포인터를 이동시키는거라 할당 비용 적음)(그런데 JVM에 따라 알아서 최적화 하기도 한다고 한다.)지난번에 발견한 java11 문
코드카타 3진법 뒤집기 3진법은 처음 봐서 대체 어떻게 구하지.. 하다가 문제에서 주어진 답을 도출하는 과정을 보고 2진법을 구하는 방식의 규칙을 대조해 3으로 나눠가며 나머지를 모으면 3진법이 되는것을 알았다.

코드카타 이상한 문자열 만들기 이상한 코드 만들기 30분 간 노력은 했다... (코테 합격 <- 이거 다음 생 이야긴가요?😭) StringTokenizer는 공백을 따로 처리해줘야해서 이 문제엔 적합하지 않다.

주석과 같은 아이디어로 코드를 짰다.하지만 인덱스 범위를 이렇게 정하면i == j == k 같은 학생 3번 선택되는 경우도 포함된다.그래서 다음과 같이 고쳐야 했다.i < j < k그리고 불필요한 반복을 줄이기 위해(a,b,c 합을 구할 때 a 반복문에서는

카프카 설치 가이드 카프카 도입 목적 카프카를 사용하는 이유는 단순한 데이터 파이프라인이 아니라 고가용성(High Availability) 확보에 있다. 비용 부담이 있으므로 t3.micro 서비스를 사용하는 것을 추천

DDD 설계 어렵다.😂

발제문에 이렇게 적혀있어서 주문이 당연히 배송ID를 가져야한다고 생각했는데,주문이 배송 정보를 필요로 하지 않고, 배송이 주문ID를 가지고있다면 주문에 대한 배송 정보를 가져올 수 있다.

Delivery Manager를 엔티티로 관리하고있었는데, 현재 구조에서 Role 타입구분 외에는 User와 별다른 특성이 없어 따로 관리하지 않는다. 처음에 프롬프트 템플릿을 crud로 사용자가 (알림 관리자) 수정할 수 있어도 좋겠다 싶었지만 경로 계산이나 경로의

코드카타 최소직사각형 >가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함