자바 강의 1주차 복습, 자료구조1주차 TIL 작성 다하고 날라감 이슈로 인해 다시 작성,,,1) JVMJVM은 여러가지의 기기 위에 JAVA 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는 것을 의미한다고 한다. 2) 1주차 HW - 요리 레시피 메모장 만들기처
객체 지향 프로그래밍 이해하기클래스 설계객체 생성과 참조형 변수객체의 속성: 필드객체의 행위: 메소드인스턴스 멤버와 클래스 멤버생성자this와 this()접근 제어자pakage와 import객체는 식별이 가능한 것을 의미 - 물리적은 존재하는 것은 물론 식별 가능한 개
오늘의 학습 키워드 상속 오버라이딩 다형성1 추상 클래스 인터페이스 default 메소드 & static 메소드 다형성2 1. 상속 공통적인 코드 관리 가능 코드의 중복이 제거되고 재사용성이 크게 증가하여 생산성과 유지보수성에 매우 유리 public class 자식
예외try-catch, finally 문예외 클래스 구조3주차 내용 복습오류: 일반적으로 회복이 불가능한 문제예외: 일반적으로 회복이 가능한 문제코드실행 관점에서 예외종류: 컴파일 에러, 런타임 에러컴파일 에러: 자바 언어의 규칙을 지키지 않았을 때 발생하는 에러해결방
static 키워드메소드 호출Mapstatic 메소드 안에서는 static 변수와 static 메소드만 호출이 가능하다.이처럼 main 메소드는 static 키워드를 가지고 있기 때문에 main 메소드 안에서 호출, 접근하는 메소드와 변수는 모두 static 키워드로
String.valueOf()toCharArray()(int) 캐스팅 연산자 와 Character.getNumericValue() 메소드인스턴스 변수Map 매개변수Map 중복 값 찾기int 타입을 String 타입으로 변환시켜주는 메소드저장할 변수 = String.va
ArrayList Integer.parseInt() 메소드생성ArrayList<제네릭클래스> arrayList = new ArrayList<>();\*\* 제네릭클래스: Integer, String,,, 혹은 내가 만든 클래스메소드arrayList.add(v
🔥 프로그래머스 알고리즘 풀이🔥 내일배움캠프 팀과제🔥 git 협업🎥 오늘의 회고\[프로그래머스] 하샤드 수, 두 정수 사이의 합, 콜라츠 추측팀 과제를 하면서 객체에 대해서 뭔가 더 잘 이해가 되었다.Stream에 대해서도 맛보기 해보았는데 모던 자바에 대해서
🔥오늘의 학습 키워드🔥1\. 코드 카타2\. 모던 자바 - 람다3\. 모던 자바 - 스트림🎥 오늘의 회고2024년 1월 12일 금요일 - 서울에서 김서방 찾기, 나누어 떨어지는 숫자 배열, 음양 더하기2024년 1월 15일 월요일 - 핸드폰 번호 가리기, 없는 숫
오늘의 학습키워드🔥▸ 코드 카타▸ if문 실행▸ 2차원 배열의 길이▸ Character.isDigit()▸ API▸ Apache Tomcat🎥 오늘의 회고if-else if 문은 if의 조건식부터 순서대로 평가해서 결과가 참인 조건식을 만나면, 해당 코드 블럭만 수
▸ 코드 카타▸ HTTP▸ 테스트 코드▸ Lombok 과 application.properties▸ Spring MVC 2024년 1월 18일 - \[프로그래머스] 8: 직사각형 별찍기, 최대공약수와 최대공배수, 3진법 뒤집기, 이상한 문자 만들기, 겹치는 선분의 길이
오늘의 학습 키워드 ▸ 코트 카타 ▸ Controller 장점 ▸ 정적 페이지 처리하기 ▸ 동적 페이지 처리하기 >### ▸ 코트 카타 2024년 1월 19일 - [프로그래머스] 9: 삼총사, 크기가 작은 부분문자열, 최소직사각형 >### ▸ Controller
▸ 코드 카타▸ 서버의 주 업무▸ JSON 데이터 반환하는 방법▸ RestController▸ Jackson▸ DTO▸ Create, Read, Upgrade, Delete2024년 1월 22일 - \[프로그래머스] 10: 시저암호 | 숫자 문자열과 영단어 | 문자열
▸ 코트 카타▸ Use Case Diagram▸ API 명세서▸ ERD Diagram▸ Entity & Dto▸ Controller2024년 1월 23일 - \[프로그래머스] 11: k번째 수 | 두 개 뽑아서 더하기 | 가장 가까운 같은 글자🥲 아직 Spring 입
▸ 코드 카타▸ @PathVariable 과 @RequestParam 차이점<span style='background-color: - @PathVariable은 해당 값이 반드시 URI에 포함되어 있어야한다.위와 같은 컨트롤러 메소드가 있을 때, URI가 '/us
▸ 코드 카타
▸ 코트카타▸ 인증과 인가▸ 쿠키와 세션▸ JWT<span style='background-color: - 인증(Authentication): 해당 유저가 실제 유저인지 인증하는 것인가(Authorization): 해당 유저가 특정 리소스에 접근이 가능한지 허가를
▸ 코드카타▸ JWT 다루기▸ Spring Security
오늘의 학습 키워드 📕 ▸ 코드카타 ▸ Validation ▸ RestTemplate ▼ 코드카타 > #### 2024년 1월 30일 - [프로그래머스] 16 : 옹알이(2) | 숫자 짝궁 | 체육복 ▼ Validation 📍Bean Validation |
▸ 코드카타▸ Entity 연관 관계<span style='background-color: - DB에서는 어떤 테이블을 기준으로 하든 원하는 정보를 JOIN을 사용하여 조회할 수 있음 -> DB 테이블간의 관계에서는 방향의 개념이 없음<span style='
▸ 코드카타▸ MySelectShop 설계프로젝트 생성 후, JWT와 json 추가 → build.gradle에 추가JWT, json 코드데이터베이스 정보 주기 → 데이터베이스 비밀번호에 비밀번호 값 넣기데이터베이스 만들기 및 연동패키지 controller 만들고 Ho
▸ 코드카타▸ MySelectShop 설계▼ MySelectShop 설계
▸ 코드카타▸ 투두앱 백엔드 서버 만들기Entity회원 entity할일카드 entity댓글 entity관계 \- 회원-할일카드 → 1:N \- 할일카드-댓글 → 1:N \- 회원-댓글 → 1:N \- 댓글 entity는 회원 entity의 기본키와
게시물 작성 기능 구현게시물 조회 기능 구현게시물 수정 기능 구현게시물 삭제 기능 구현pull 받은 후 구현entity > TimeEntityTimeEntity@MappedSuperClass JPA Entity 클래스들이 BaseTimeEntity를 상속할 경우 이
▸ 코드카타▸ 네트워크▸ Client와 Server▸ 웹 서버네트워크는 여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고 받을 수 있게 도와주는 기술 Client 즉, 브라우저에서 서버에 정보를 요청하는 과정을 간략하게 표현한 부분사용자는 브라우저를 이용하여 서
▸ 코드카타▸ HTTP▸ Protocol▸ URL데이터를 주고 받는 양식을 정의한 "통신 규약" 중 하나가 HTTP \-> 통신 규약 중 하나라면 통신 규약은 여러개 인가? \[Protocol]메우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약
▸ 코드카타▸ ServletServlet(서블릿)은 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말함사용자가 Client(브라우저)를 통해 서버에 HTTP Request 즉, API 요청을 함요청을 받은 Servlet 컨테이너는 HT
▸ 코드카타▸ IoC와 DI▸ 카카오 로그인 구현▸ 테스트▼ 테스트
▸ 오늘의 코드카타▸ Spring AOP▸ 예외처리Lv.2를 한 문제 풀고 Lv.1을 두 문제 푸는 방식으로 바꿔야겠다.
오늘의 학습 키워드 💻 ▸ 오늘의 코드카타 ▼ 오늘의 코드 카타 > ### 2024년 2월 21일 - [프로그래머스] 27 : H-Index | n^2 배열 자르기 알고리즘 문제를 풀면서 문제에서 나온 그대로 풀지 않아도 된다는 것을 깨달았다. 문제에서 2차원
▸ 오늘의 코드카타▸TodoService를 테스트 했다.해당 메서드를 수행하기 위해서는 TodoRequestDto 와 UserDetailsImpl을 전달해줘야한다. UserDetilsImpl에 대해서 테스트에서 어떻게 처리해야할지 고민이 됐다.우선, @Mock를 통해
▸ 오늘의 코드카타▸ UserDetailsImpl과 User▸ Builder 패턴
오늘의 학습 키워드 💻 ▸ 오늘의 코드카타 ▸ double과 int ▸ 커스텀 어노테이션 Argument Resolver ▸ 내 프로필 조회 기능 구현 ✅ 오늘의 코드카타 > #### 2024년 2월 26일 - [프로그래머스 - 자바(JAVA)] 30 : 의상 |
▸ 오늘의 코드카타▸ "detached entity passed to persist" 해결▸ 내 프로필 조회 기능 구현 (이어서)다른 팀원분들이 구현한 코드를 pull 받아와서 돌려보니 Hibernate에서 다음과 같은 에러가 떴다.이 오류는 JPA에서 영속 상태가 아
▸ 오늘의 코드카타▸ 영속성 컨텍스트▸ 연관관계영속 엔티티/객체DB 데이터에 매핑되는 메모리 상의 객체영속 컨텍스트일종의 메모리 저장소EntityManager가 관리할 엔티티 객체 보관EntityManager가 내부적으로 동작을 함@Transactional을 걸어야 업
▸ JDBC▸ DockerJava 앱과 DB를 연결시켜주기 위해 만들어진 기술JPA도 이 기술을 사용하여 구현되어 있다.JDBC Driver는 여러 타입의 DB와 연결할 수 있는 기능을 제공한다.Java 앱(Application)이 있다고 했을 때, JDBC API를
▸ 오늘의 코드카타▸ JDBC ▸ ORM연결정보 파라미터 정의Connection 생성실행할 SQL 문 지정파라미터 선언과 파라미터 값 제공Statement 준비와 실행결과 담기Connection, Statement, ResultSet 닫기Connection, State
오늘의 학습 키워드 📕 ✅ Raw JPA 테이블 매핑 기능 ✅ Raw JPA 필드 타입 매핑 기능 도메인 모델과 테이블 설계 메신저를 예시로 하고 도메인 모델과 테이블을 설계하고자 한다. User : 유저 정보로 채널과 관계만 양방향이고, 다른 도메인과는 단방
▸ 오늘의 코드카타▸ Raw JPA 연관관계 매핑▸ 복합키▸ Cascade(영속성 전이)▸ orphanRemoval(고아 객체 제거)▸ Fetch(조회시점)User : 유저 정보로 채널과 관계만 양방향이고, 다른 도메인과는 단방향 관계를 가진다.Channel : 대화
목차 오늘의 코드카타 Spring Data 구조 JpaRepository 원리 오늘의 코드카타 > #### 2024년 3월 8일 - [프로그래머스 - 자바(JAVA)] 35 : 숫자의 표현 Spring Data 구조
AuditingAuditing 을 사용하면 엔티티를 누가 언제 생성/마지막 수정 했는지 자동으로 기록되게 할 수 있다.메인 애플리케이션 위에 @EnableJpaAuditing 추가엔티티 클래스 위에 @EntityListeners(AuditingEntityListener
JPQLQueryDSLTable 이 아닌 Entity(객체) 기준으로 작성하는 쿼리를 JPQL 이라고 하며 이를 사용할 수 있도록 EntityManger 또는 @Query 구현체를 통해 JPQL 쿼리를 사용할 수 있다.쿼리 문자열과 Entity 를 직접 넣어서 쿼리를
Projection전체를 조회하면 당연히 필드가 많아질수록 느려진다. -> 일부 필드만 조회해서 성능을 최적화하고자할 때 Projection 기능 사용원하는 필드만 지정해서 조회 가능여러필드 합쳐서 재정의 필드(Alias) 조회 가능 (Nested 프로젝션)조회 필드
통합테스트@Transactional@Rollback모든 Bean을 올리고 테스트를 진행하기 때문에 쉽게 테스트 진행 가능모든 Bean을 올리고 테스트를 진행하기 때문에 운영환경과 가장 유사하게 테스트 가능API 테스트할 경우 요청부터 응답까지 전체적인 테스트 진행 가능
외래키클러스터 인덱스와 논클러스터 인덱스외래키는 관계형 데이터베이스에서 나오는 개념한 테이블의 필드(또는 여러 필드)가 다른 테이블의 기본키(PK)를 가리키는 제약조건이다.데이터 일관성 유지를 가능하게 해주고 데이터의 무결성을 지켜준다.하지만, 외래키를 가진다는 것은
📕연관관계 없이 테이블 설계이번 프로젝트의 주제는 칸반보드이다. 트렐로를 많이 참고했다.필수 구현 사항은 다음과 같다.사용자 관리 기능 로그인 / 회원가입 기능 사용자 정보 수정 및 삭제 기능보드 관리 기능 보드 생성 보드 수정보드 이름배경 색상설명 보드 삭제생성한
📕 컬럼 관리 기능💼 라벨 관리 기능🎹 날짜 관리 기능
🚗 라벨 관리 기능 구현🎲 카드 조회 기능 구현
🎸 동시성 제어
오늘의 학습 키워드
프로젝트 구상
오늘의 학습 키워드 이벤트-상품 중간 테이블 QueryDSL 삭제 쿼리 QueryDSL 3개 테이블 조인 📖 이벤트-상품 중간 테이블 요구사항 하나의 이벤트에는 이벤트에 관련된 여러 상품을 같이 등록할 수 있다. 여러 상품은 여러 이벤트에 속할 수 있다. 여러 이
페이징 구현 페이징 적용페이징을 제공하는 중요한 인터페이스Pageable 만드는 법of() 메서드를 호출하면 실제 page 객체가 반환됨Pageable 메서드JPA 페이지는 0부터인데 화면은 1부터시작하는 문제\-1 처리를 중복으로 해줘야하는 이슈PageDTO 를 만들
쿠폰(Coupon) 기능 구현Event 와 연관관계 매핑발행 쿠폰(Issued Coupon) 기능 구현발행 쿠폰 만료에 대해서선착순 쿠폰이 존재하며 이 쿠폰은 셀러만 등록할 수 있고 등록할 때 쿠폰의 만료일자, 수량 정보를 입력하여 등록해야한다.이벤트에서는 해당 선착순
JMeter동시성 제어선착순 쿠폰에 있어서 동시에 유저가 접근하는 경우도 당연히 고려해야했다.Jmeter를 활용하여 동시에 많은 유저가 접근하는 경우를 테스트 했다.선착순 쿠폰이 50개의 재고가 있다고 가정할 때, 55명의 유저가 동시에 접근했다고 가정하고 테스트 했다
[Spring Boot] ApplicationEventPublisher를 통해 스프링 부트 이벤트 적용하기
📖 쿠폰 사용 기능 구현📖 회원 가입 쿠폰 발행 기능 구현현재 프로젝트에는 결제 기능이 없기 때문에 쿠폰 사용 기능에 대해서는 상품 주문에 같이 포함되게 했다\-> 차후, 프로젝트 리팩토링에 결제 기능 추가 예정이기 때문에 쿠폰 사용 기능도 수정할 계획이다.
프로젝트 소개프로젝트 기여프로젝트 아쉬운 점프로젝트 소감image프로젝트 명 : 9OODS소개9OODS는 유튜버, 캐릭터, 연예인 등 모든 크리에이터의 굿즈를 사고 팔 수 있는 이커머스 서비스 입니다.9OODs결제 기능을 구현하지 못했다.서버 모니터링 기능도 구현하지