스타터 노트 내가 Spring(Java) 트랙에 참여한 계기는 무엇인가요? 혼자서 공부를 한 적이 있었지만 제대로 배우지를 못한 것 같고, 알고리즘 문제들을 혼자서 공부하면서 계속 벽에 막히는 느낌이 들어서 이번 Spring(Java) 트랙에 참여하여 기본부터 다시 차근차근 배워서 취업을 성공하고 싶습니다. 내가 이해한 개발자는 어떤 역할을 하는 ...

멤버가드 작성하기 안녕하세요. 내일배움캠프에 참가하게 된 윤지현(Java_6기)입니다! 초보지만 열심히 하도록 하겠습니다! 요즘 하고 있는 것 및 취미 - 음악, 자격증, 요리 최근에 자격증 얻고자 하는 것이 있어서 자격증 공부를 하고 있습니다. 자격증이나 다른 어떤 것을 하다 보면 중간에 지칠 때가 있어서 음악을 들으니 마음이 편안해지는 것 같아...
개발 용어 정리 1 HTML 웹페이지 뼈대 / 즉, 사용자가 웹페이지에 들어갈 때 보여주는 외관 CSS 웹페이지 스타일 / 즉, HTML로 뼈대를 만든 후 꾸미기 Backend - 서버가 Database에 요청을 할 때, 특정 API와 통신을 하면서 그 요청을 처리 OR 저장 Spring, Python, 장고(Django)로 구현 Fronte...
개발 용어 정리 2 > 1. 예외처리 실행 흐름상 오류가 발생했을 때 오류를 그대로 실행시키지 않고 오류에 대응하는 방법을 제시하는 개념 라이브러리(Library) 개발자들이 자주 사용하는 코드의 집합 프레임워크(Framework) 개발자들이 Application 개발하는데 사용되는 구조 컴파일(Compile) 사용자가 적은 코드를 컴퓨터가 ...
Java 돌아보기 1. Java란? > 1. Java란? 널리 사용되는 객체 지향 프로그래밍 언어 및 소프트웨어 플랫폼 Java의 규칙 : C, C++ 기반 목표 : "한 번 작성하고 어디에서나 실행할 수 있도록 하는 것" 어디에서나 실행이 가능 2. Java의 작동 방식 JDK(Java Development Kit)를 다운로드 컴파...

Lv1. 랜덤 닉네임 생성 1. 사용자는 최소 27가지 이상의 닉네임 중 하나를 랜덤으로 출력 할 수 있습니다. > (아래의 키워드를 사용해주세요!) 기철초풍, 멋있는, 재미있는 도전적인, 노란색의, 바보같은 돌고래, 개발자, 오랑우탄 실행 화면 - createRandomNickname 함수 생성하기 전 - createRando...

Lv2. 스파르타 자판기 조건 >#### 1. 사용자가 볼 수 있게 메뉴를 표시합니다. 다음과 같은 음료를 실행창에 표시합니다. 사이다 1,700원 콜라 1,900원 식혜 2,500원 솔의눈 3,000원 2. 사용자는 음료를 선택할 수 있습니다. > - 사용자에게 어떤 음료를 살 것인...
연습문제1) 돈을 벌기 위해 일을 합시다! - sparta_employees(직원) 테이블 > |id|name|position|salary|hire_date| |:---|:---|:---|:---|:---| |1|르탄이|개발자|30000|2022-05-01| |2|배캠이|PM|40000|2021-09-25| |3|구구이|파트장|35000|2023-06-...
연습문제2) 이제 좀 벌었으니 flex 한 번 해볼까요?! - products(상품) > |id|product_name|price|category |:--|:--|:--|:--| |1|맥북 프로|1200|컴퓨터| |2|다이슨 청소기|300|생활가전| |3|갤럭시탭|600|컴퓨터| |4|드롱기 커피머신|200|주방가전| products 테이블에서 제품 이름...
연습문제3) 상품 주문이 들어왔으니 주문을 처리해봅시다! - orders(주문) >|id|customerid|productid|amount|shippingfee|orderdate| |:--|:--|:--|:--|:--|:--| |1|719|1|3|50000|2023-11-01| |2|131|2|1|10000|2023-11-02| |3|65|4|1|200...
연습문제4) 이제 놀만큼 놀았으니 다시 공부해봅시다! - sparta_students(학생) >| id | name | track | grade | enrollment_year | | --- | --- | --- | --- | --- | | 1 | 르탄이 | Node.js | A | 2023 | | 2 | 배캠이 | Spring | B | 2022 | |...

[SQL 과제] Lv1. 데이터 속 김서방 찾기 > - 문제 “김”씨로 시작하는 이용자들 수를 세어 보기 데이터 설명 user 테이블은 스파르타 코딩클럽에 가입한 유저들의 정보를 날짜별로 기록한 테이블입니다. user_id: 익명화된 유저들의 아이디(varchar255) created_at: 아이디 생성 날짜(ti...
[SQL 과제] Lv2. 날짜별 획득포인트 조회하기 > - 문제 날짜별로 획득한 포인트가 점점 늘어나는지 줄어드는지 확인 데이터 설명 point_users 테이블은 가입 유저들의 포인트에 대한 정보를 기록한 테이블 pointuserid: user_point 행을 구별하기 위한 key(varchar255) created_at: 아이디...

[SQL 과제] Lv3. 이용자의 포인트 조회하기 > - 문제 이용자들 별로 획득한 포인트를 학생들에게 이메일 전송 (user 테이블에는 있으나 point_users 에는 없는 유저는 point를 0으로 처리) 데이터 설명 user 테이블은 가입한 유저들의 정보를 날짜별로 기록한 테이블 user_id: 익명화된 유저들의 아이디(v...
백엔드 개발자 JD 분석 백엔드 개발자 직무 채용공고 분석 1. 관심 기업 혹은 업계를 리스트업 합니다. (5개 내외) >1. 주요 업무 / 자격 요건 / 지원자격 중심으로 직무 채용공고를 분석해 봅니다. (우대사항은 참고 정도만) > > |기업|주요 업무|자격 요건|우대사항|스킬|핵심역량| |:--|:--|:--|:--|:--|:--| |커브|Ja...
연습문제5) 공부하다보니 팀 프로젝트 시간이 왔어요! - team_projects > | id | name | startdate | enddate | aws_cost | | --- | --- | --- | --- | --- | | 1 | 일조 | 2023-01-01 | 2023-01-07 | 30000 | | 2 | 꿈꾸는이조 | 2023-03-15 | ...
연습문제6) 팀 프로젝트 열심히 했으니 다시 놀아볼까요?! - lol_users > | id | name | region | rating | join_date | | --- | --- | --- | --- | --- | | 1 | 르탄이 | 한국 | 1300 | 2019-06-15 | | 2 | 배캠이 | 미국 | 1500 | 2020-09-01 | | ...
연습게임7) 랭크게임 하다가 싸워서 피드백 남겼어요… - lol_feedbacks > | id | username | satisfactionscore | feedback_date | | --- | --- | --- | --- | | 1 | 르탄이 | 5 | 2023-03-01 | | 2 | 배캠이 | 4 | 2023-03-02 | | 3 | 구구이 | 3...

GIT과 GITHUB > 리눅스 명령어 : pwd : 현재 위치 확인 ls : 현재 위치에 있는 파일 확인 ls -a : 숨겨진 파일도 확인 cd : 다른 디렉토리로 이동 cd .. : 상위 디렉토리로 이동 touch a : a라는 파일 생성 mkdir : 디렉토리 생성 > git과 github의 의미 git : 코드 변경점 기록 GITHub : 온...
첫번째프로젝트(내배캠) > - 👥 팀 ✔️ 팀명 : OK계획대로되조 ✔️ 팀 소개 : J 4명과 P 1명의 내배캠 OK 계획대로 되고 있조 > - 📒 프로젝트 ✔️ 프로젝트명 : 대학교 1학년 1학기 ✔️ 프로젝트 소개 : 팀원의 정보가 담긴 웹 사이트 제작 > - 📅 개발일정 2024.07.15(수) 15:...

> >

> > > 그 외 : Object, Array, List … 단일 저장공간에 담을 수 없는 값을 저장 ------------------------------------------ List alphabet = [0,1,2,3]; // 기본형 변수 여러개를 저장합니다. > // 박싱 // Int...
> |산술 연산자|+ - * / % >|사칙 연산과 비트연산| |---|---|---| |비교 연산자|> = > >

개인과제 문제를 보면 나눗셈에서 분모에 0이 들어오거나 연산자 기호가 잘 못 들어온 경우 적합한 Exception 클래스를 생성하여 throw 합니다. (매개변수로 해당 오류 내용을 전달합니다.) 라고 나와있었다..... 일단 예외처리를 이렇게 하기로 결정했다. 일단 예외처리를 할 클래스를 만들었다. type이라는 문자열의 매개변수를 받을 수 있게 하...
개인과제 문제를 풀면서 Level2의 3~5까지 문제를 풀었다. 캡슐화하여 App클래스의 Main메서드가 Calculator 클래스의 연산결과를 저장하고 있는 필드에 접근하지 못하도록 했다. 또한 Getter메서드와 Setter메서드를 이용하여 필드에 간접 접근하여 가져오고 수정할 수 있게 하였다. 가장 먼저 저장된 데이터를 삭제하는 메서드를 Calcul...
개인과제 6~8까지 풀었다. 6번 Calculator 인스턴스를 생성(new)할 때 생성자를 통해 연산 결과를 저장하고 있는 컬렉션 필드가 초기화 되도록 수정 > - 생성자란? 먼저 Calculator.java에서 아래처럼 생성자를 구현했다. Calculator라는 클래스 이름으로 생성자를 만들었는데 지금 보면 매개변수가 없는 생성자 1개만 있었어도 된 ...
Level2의 개인과제 9~10을 풀었다. 9번 ArithmeticCalculator 클래스의 연산 메서드에 책임(역할)이 많아 보입니다. 사칙연산 각각의 기능을 담당하는 AddOperator, SubtractOperator, MultiplyOperator, DivideOperator 클래스를 만들어 연산 메서드의 책임을 분리 해봅니다. (SRP) > -...
- 생성자란? > - this? > - 참조 변수의 타입 변환? ➡ 자동 타입 변환, 강제 타입 변환 두 개가 있음 > - 다형성? > - 추상 클래스? > - 인터페이스?
오늘부터 Java 팀프로젝트를 시작했다. 내배캠 수강생들을 관리하는 프로그램을 만드는 것이다. 캠프에는 필수 과목과 선택 과목이 존재한다. | 필수 과목 목록| 선택 과목 목록 | | --- | --- | | Java | 디자인 패턴 | | 객체지향 | Spring Security | | Spring | Redis | | JPA | MongoDB | |...

Java 팀프로젝트 2일차이다. 오늘은 그 전에 만들었던 Subject 클래스를 수정하고 기능을 할 수 있는 메서드를 만드는 것이 목표이다. 오늘은 점심에 한 번 미팅을 하면서 기존에 있던 클래스를 열거형인 enum 클래스로 만들어서 했으면 좋겠다는 의견이 나왔다. 순간적으로 어... 어떻게 사용하지?🤔 하면서 고민하다가 팀원분들꼐서 많이 도와주셨다.(정...
저번에 2일차 했던 것들을 바탕으로 조건에 맞게 수정 및 추가적으로 클래스를 만들어서 기능을 수행할 수 있도록 해야한다. 추가 요구 사항이었던 수강생의 상태를 관리할 수 있어야 하는데 수강생의 상태는 이런 형태로 되어 있다. | 상태 종류 | | --- | | Green | | Red | | Yellow | 이것도 열거형인 enum으로 해서 만들었다. ...
오늘은 새로운 클래스를 만들어야 한다. > - 해야 할 목록 while문으로 무한반복하면서 입력 받기 특정 상태인(green, red, yellow) 중에서 입력받아서 특정 상태에 해당하는 수강생 정보 출력 후기 일단 만들기는 했는데 내일 팀원들과 합쳐서 수정할 것은 수정해야겠다.

기존에 있는 것을 수정할 것은 별로 없지만 오류 메시지가 뜰 때 이를 강조하기 위해 다른 팀원님께서 하셨던 대로 사용했다. 잘 강조되어서 나타난다. 그 다음에 다른 팀원들이 작성한 코드들을 merge해서 잘 합쳤다. 이제는 점수를 입력, 조회, 수정, 과목별 평균, 특정 상태 수강생들의 필수 과목 평균 등급을 조회 클래스에 기능을 넣어야 한다. 먼저 ...
- 오류(Error)🔥 vs 예외(Exception)🚨 > - 예외(Exception)의 종류🚨 > - 예외 발생과 try-catch, finally 문 | throws | throw | | --- | --- | | 메서드 이름 뒤에 붙어 이 메서드가 어떠한 예외사항을 던질 수 있는지 알려주는 예약어입니다. | 메서드 안에서, 실제로 예외 객체를...

- Generic 알아보기 > - Collection 다시보기 > - Wrapper 객체
이번 프로젝트 수강생을 관리하는 프로젝트(모든 구성요소를 자바로 구현) 프로그램에 이용되는 각 데이터 모델, 데이터 모델을 처리할 클래스, 프로그램 전체를 관리하는 클래스 프로젝트 과정 밑에 있는 두 과정을 반복 첫 번째 : 각 데이터 모델을 기준으로 구분(수강생, 과목, 점수, 프로젝트 전체 관리) 두 번째 : 각자 해온 작업들을 기...
정적 페이지와 동적 페이지 정적 페이지 처리하기 동적 페이지 처리하기 데이터를 Client에 반환하는 방법 Jackson이란 무엇일까? Path Variable과 Request Param HTTP 데이터를 객체로 처리하는 방법

오늘의 루틴 3 Layer Architecture에 대한 강의 내용 학습 (O) 개인과제 필수조건까지 코드를 작성 (O) 저번에 배운 Spring 복습 (△) 3 Layer Architecture란 무엇일까? 1. Controller 2. Service 3. Repository 오늘의 후기 전체적으로 코드를 작성하...
오늘의 루틴 API 명세서 작성 (O) 개인과제 추가 구현 6번째 코드 작성 (O) Spring 내용 복습 (O) 처음에는 이 내용을 보고 뇌정지가 온 것 같다. (어떻게 시작해야 하나 계속 생각 중) > 일단 담당자과 일정과 분리해서 관리한다고 하니 manager라는 table을 생성하였다. 또한 manager를 연결하면서 그 ...
오늘의 루틴 개인과제 추가 구현 7~8번째 코드 작성 (O) Spring 내용 복습 (O) 이번에도 어떻게 해야할까라는 생각으로 시작을 했다... > 문제를 읽어보면 쿼리를 작성해야 한다고 되어있는데 페이지 번호와 페이지 크기를 파라미터로 입력받아 기존에 만든 쿼리에 넣어 조회하게 만들어야 겠다. 1. MyScheduleController...
오늘의 루틴 개인과제 추가 구현 9번째 코드 작성 (O) Spring 내용 복습 (O) 마지막 단계를 시도해 봤다. > 여기서 @Valid가 무엇인지 한 번 검색했다. > 나는 Groovy를 사용하므로 먼저 build.gradle에 있는 dependencies에 이것을 추가해야 한다. 이제는 코드를 수정해야한다. ManagerReques...
오늘의 루틴 Spring 강의 최소 4개는 듣기 (O) 개인과제 제출 및 해설 확인 (O) 저번에 배운 Spring 복습 (△) IoC(제어의 역전), DI(의존성 주입) 이해하기
오늘의 루틴 Spring 강의 최소 4개는 듣기 (O) 주말에 공부한 내용 다시 보기 (O) JPA란 무엇일까? 🔻 DB를 직접 다룰 때의 문제점 SQL => 의존적 데이터가 추가되면 SQL을 수정해야 함 3 Layer Architecture, dto에도 추가해야 함 🔻 ORM이란? 객체와 데이터베이스를 매핑해주...

오늘의 루틴 Spring 강의 최소 4개는 듣기 (O) 공부한 내용 다시 보기 (O) Entity의 상태 🔻 비영속(Transient) new 연산자를 통해 인스턴스화 된 Entity 객체 영속성 컨테스트 저장 X => JPA 관리 X 🔻 영속(Managed) persist(entity) : 비영속 Entity를 ...
오늘의 루틴 개인과제 1단계 완료 및 2단계 시도 (O) 공부한 내용 다시 보기 (O) 오늘은 한 번 개인과제를 도전해봤다. > - 1단계 : 일정 CRU 🔻 조건 일정을 저장, 단건 조회, 수정할 수 있습니다. 일정은 작성 유저명, 할일 제목, 할일 내용, 작성일, 수정일 필드를 갖고 있습니다. 아직 연관관계를 하지 않아서...
오늘의 루틴 개인과제 2단계 완료 및 3~4단계 시도 (O) 강의 최소 4개는 듣기 (O) 공부한 내용 복습 (O) 지난번에 했던 내용들에 이어서 개인과제를 도전해봤다. > - 2단계 : 댓글 CRUD 🔻 조건 일정에 댓글을 달 수 있습니다. 댓글과 일정은 연관관계를 가집니다. 댓글을 저장, 단건 조회, 전체...
오늘의 루틴 개인과제 3단계 완료 및 4~5단계 시도 (O) 강의 최소 4개는 듣기 (O) 공부한 내용 복습 (O) 이번에는 3단계를 마루리 작업했다. > - 3단계 : 일정 페이징 조회 🔻 조건 일정을 Spring Data JPA의 Pageable과 Page 인터페이스를 활용하여 페이지네이션을 구현해주세요. 페이...
오늘의 루틴 개인과제 3단계 완료 및 4~5단계 시도 (O) 강의 최소 4개는 듣기 (O) 공부한 내용 복습 (O) 이번에는 3단계를 마무리 작업했다. > - 5단계 : 유저 CRUD 🔻 조건 유저를 저장, 단건 조회, 전체 조회, 수정, 삭제할 수 있습니다. 유저는 유저명, 이메일, 작성일, 수정일 필드를 갖고 ...
오늘의 루틴 개인과제 6단계 완료 및 7~8단계 시도 (O) 공부한 내용 복습 (O) 필수 구현 단계의 마지막 6단계를 작업했다. > - 6단계 : 일정 조회 개선 🔻 조건 일정 단건 조회 시 담당 유저들의 고유 식별자, 유저명, 이메일이 추가로 포함됩니다. 일정 전체 조회 시 담당 유저 정보가 포함되지 않습니다. J...
오늘의 루틴 개인과제 7단계 완료 및 8~9단계 시도 (O) 공부한 내용 복습 (O) 한 번 추가 구현 단계도 도전을 했다. 7단계를 하려면 jwt를 해야한다. > - 7단계 : 회원가입 🔻 조건 유저에 비밀번호 필드를 추가합니다. 비밀번호는 암호화되어야 합니다. 암호화를 위한 PasswordEncoder를 직접 만...
오늘의 루틴 개인과제 8단계 완료 및 9~10단계 시도 (O) 공부한 내용 복습 (O) 8단계를 하려는데 이젠 로그인도 해서 인증도 해야하네.... > - 8단계 : 로그인 🔻 설명 JWT를 활용해 로그인 기능을 구현합니다. 필터를 활용해 인증 처리를 할 수 있습니다. 🔻 조건 이메일과 비밀번호를 활용해 로그인 기능...
오늘의 루틴 개인과제 9~10단계 시도 및 완료(O) 공부한 내용 복습 (O) 마지막으로 9단계와 10단계를 도전했다. > - 9단계 : 권한 확인 🔻 조건 유저에 권한을 추가합니다. 권한은 관리자, 일반 사용자 두 가지가 존재합니다. JWT를 발급할 때 유저의 권한 정보를 함께 넣어줍니다. 일정 수정 및 삭제...
오늘의 루틴 개인과제 피드백 개선 (O) 최소 강의 4개 듣기 (O) 개인과제를 피드백 받은 내용을 개선했다. > - 9단계 : 권한 확인 🔻 피드백 권한 검증이 중복되어 controller에 들어가 있다. AuthUtil라는 클래스에 권한 검증 메서드를 구현해서 재사용 외부 API 라이브러리 호출 시 JackSon 활...
오늘의 루틴 최소 강의 4개 듣기 (O) 01. Bean을 수동으로 등록하는 방법 🔻 Bean 수동 등록이란? @Component를 사용하면 @ComponentScan에 의해 자동으로 스캔되어 해당 클래스를 Bean으로 등록 @Component를 사용하여 Bean을 자동으로 등록 Bean 수동 등록은 언제 사용 기술적인 문제나...

오늘의 루틴 최소 강의 4개 듣기 (O) 01. 인증과 인가란 무엇일까? 🔻 인증과 인가 인증(Authentication) 인증은 해당 유저가 실제 유저인지 인증하는 개념 여러분의 스마트폰에 지문인식, 이용하는 사이트에 로그인 등과 같이, 실제 그 유저가 맞는지를 확인하는 절차 인가(Authorization) 인가는...
오늘은 프로젝트를 했다. 게시글을 조회할 때 다른 테이블을 참조해서 조회를 해야 하기 때문에 N+1문제가 발생하였다. 🔻 N+1이란 데이터베이스나 ORM (Object-Relational Mapping) 시스템에서 발생하는 성능 문제 데이터베이스에 많은 쿼리를 보내게 되어 성능 저하가 일어남 N개의 엔티티에 대해 각각 추가적으로 1개의 쿼리...
KPT 프로젝트 회고록 팀장 성장 경험: 이번 프로젝트에서 실시간 문제 해결과 팀워크를 통해 깊이 있는 협력 경험을 쌓았으며, 이를 통해 많은 성장을 할 수 있었습니다. 문제점: 실시간 문제를 해결하는 과정에서 종종 상황을 빠르게 파악하고 우선순위를 정하는 데 어려움을 느꼈습니다. 시도해야 할 것: 앞으로는 문제의 우선순위를 명확히 정리하고, 문제 해...
단위 테스트란 무엇일까? 테스트 코드란? 소프트웨어의 코드가 예상한 대로 작동하는지 확인하기 위해 작성되는 코드 테스트 코드를 작성한다면 프로그램의 버그를 사전에 발견하여 기하급수적인 비용의 증가가능성을 사전에 방 개발자는 단위 테스트를 작성하여 프로그램을 테스트 할 수 있습니다. 단위 테스트는 작은 단위로 쪼개서 각 단위가 정확하게...

통합 테스트란 무엇일까? 단위 테스트 VS 통합 테스트 단위 테스트 (Unit Test) 하나의 모듈이나 클래스에 대해 세밀한 부분까지 테스트가 가능합니다. 하지만 모듈 간에 상호 작용 검증은 할 수 없습니다. 통합 테스트 (Integration Test) 두 개 이상의 모듈이 연결된 상태를 테...

API 예외처리란 무엇일까? 예외처리를 따로 배우는 이유 웹 애플리케이션에서의 에러를 Client와 Server 모두가 잘 알지 못하면 -> Service 환경에서 발생한 에러에 제대로 대응 불가 에러를 처리하는 것 역시 관심사를 분리해서 더 효율적으로 처리할 수 있음 웹 애플리케이션의 에러 Response 메시지 start-li...
Error 메시지 관리하기 Spring의 properties 파일을 이용한 에러 메시지 관리 Spring에서는 properties 파일을 이용하여 에러 메시지를 관리할 수 있습니다. 에러 메시지는 properties 파일에서 key-value 형태로 작성되며, 작성된 값은 messageSource 를 Bean으로 등록하여 사용할 수 있습니다. r...

오늘은 저번에 배웠던 내용들을 복습할 겸 작성했다. 01. 쿠키와 세션이란 무엇일까? 쿠키와 세션 > 👉 쿠키와 세션 모두 HTTP 에 상태 정보를 유지(Stateful)하기 위해 사용됩니다. 즉, 쿠키와 세션을 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있게 됩니다. 쿠키 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일 ...

01. JWT란 무엇일까? JWT 사용 이유 서버가 1대인 경우 Session1 이 모든 Client의 로그인 정보를 소유 서버가 2대 이상인 경우 서버의 대용량 트래픽 처리를 위해 서버 2대 이상 운영이 필요할 수 있습니다. 만약 Client 1의 로그인 정보를 가지고 있지 않은 Sever2 나 Server3 에 API 요청을 하게...
01. 필터 Filter란? Filter란 Web 애플리케이션에서 관리되는 영역으로 Client로 부터 오는 요청과 응답에 대해 최초/최종 단계의 위치이며 이를 통해 요청과 응답의 정보를 변경하거나 부가적인 기능을 추가 가능 주로 범용적으로 처리해야 하는 작업들, 예를들어 로깅 및 보안 처리에 활용 또한 인증, 인가와 관련된 로직들을...
01. Validation Validation이란? > - 특히나 Java는 null 값에 대한 접근에 대해 NullPointerException 오류가 발행하기 때문에 이러한 부분을 예방하기 위해 Validation 즉, 검증 과정이 필요 Spring에서는 null 확인 뿐 아니라 문자의 길이 측정과 같은 다른 검증 과정도 쉽게 처리할 수 있도록 Be...
Keep (유지할 점): 테스트 코드를 작성하여 코드의 안정성을 확인함. 스케줄러를 활용한 블랙리스트 토큰 삭제 기능 구현. Problem (문제점): 테스트 코드 설정과 작성법에 대한 고민이 필요함. 코드 커버리지가 낮아 아쉬움이 있음. Try (시도할 점): 테스트 커버리지를 높이기 위한 추가 작업 계획. 더 많은 강의를 통해...

1. 쓰레드의 모든 것 01. 쓰레드란? > 프로그램에서 실행되는 작업의 최소 단위 02. 그럼 어떻게 동작하나? > API 호출을 Spring에 요청 -> 해당 요청을 쓰레드가 받아서 처리 쓰레드의 역할 - 요청을 받아서 처리해주는 역할 03. 성능이 좋은 서버란? > 요청과 응답이 빠른 서버 🤔 그렇다면 성능이 좋은 서버를 만들기 위해서...
1. 테스트 코드와 활용 01. 테스트를 작성해야 하는 이유? > - 디버깅 감소 테스트를 한 번 작성해두면 프로젝트가 살아 있는 내내 값비싼 결함을 예방해주고, 짜증 나는 디버깅에서 해방시켜준다. 자신 있는 변경 좋은 테스트로 무장한 프로젝트는 자신감을 갖고 변경하고 리팩토링 할 수 있다. 장애가 발생하는 부분을 1차적으로 먼저 걸러...

01. 인증/인가 JWT에 userI와 email을 넣었는데 어떻게 꺼낼까? 먼저! 그 전에 JWT와 Filter에 대해서 알아보자! JWT와 Session JWT에 대하여 말하기 전에 Http의 stateless와 connectionless에 대하여 이야기를 해보자 > - HTTP의 stateless? conntectionless? statel...

01. ORM MyBatis 란? > RowMapper 가 가지고있는 단점인 “반복되는 코드”를 줄이고 “함께있는 프로그램 코드와 쿼리 코드를 분리하여 관리”하고 싶은 니즈를 반영하여 탄생 > - MyBatis 특징 jdbc로 처리하는 코드의 설정(Connection) 부분을 줄이고 실제 sql문에 연결함으로서 빠른 개발이 가능하게 한다. (SQ...
QueryDSL이란? QueryDSL 소개 > - Entity 의 매핑정보를 활용하여 쿼리에 적합하도록 쿼리 전용 클래스(Q클래스)로 재구성해주는 기술 여기에 JPAQueryFactory 을 통한 Q클래스를 활용할 수 있는 기능들을 제공 그럼, JPAQueryFactory 는 뭘까? 재구성한 Q클래스를 통해 문자열이 아닌 객체 또는 함수로 쿼리를 작...

1. DNS란? > DNS란 Domain Name System의 약어로, 인터넷에서 사용되는 컴퓨터나 기기들의 주소를 인터넷 사용자가 쉽게 이해하고 기억할 수 있는 도메인 이름(예: www.google.com)으로 변환해주는 시스템 🤔 왜 변경할까? > 인터넷에 있

1. 문제 매니저 등록을 별개로 로그 테이블에는 항상 로그가 남도록 만들었다. 예외가 발생하도록 예외 "담당자를 등록하려고 하는 유저가 유효하지 않거나, 일정을 만든 유저가 아닙니다."가 발생한 후에 insert 쿼리가 발생했지만 테이블에 데이터가 들어가지 않았다. ![](https://velog.velcdn.com/images/jhy1/post/5ff9...
KPT 프로젝트 회고록 팀원1 성장 경험: 모르는 부분이 있으면 스스로 해결하다가 함께 해결할 수 있도록 문제를 공유하면서 문제를 해결할 수 있었던 점이 좋았다. 문제점: 시간 분배가 잘 되지 않아 도전 과제를 제대로 하지 못했다. 시도해야 할 것: 실력과 주어진 과제의 정도를 고려해서 더욱 디테일하게 시간 분배를 해서 마감기한을 잘 지키도록 해야겠다...