일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- LV03
- Lv.0
- Kafka
- LV02
- mysql
- 연습문제
- S3
- SQL
- JPA
- docker
- Java
- LV.02
- GIT
- spring boot
- LV01
- 일정관리 프로젝트
- Join
- 데이터 베이스
- 코테
- CI/CD
- 일정관리프로젝트
- 알고리즘
- 이것이 자바다
- LV0
- 프로그래머스
- 디자인 패턴
- LV1
- 포트폴리오
- Redis
- CoffiesVol.02
- Today
- Total
목록분류 전체보기 (204)
코드 저장소.
목차1.도입2제네릭이란 ?3.와일드 카드4.제네릭 소거5.정리 1.도입평소에 자바로 코드를 작성을 하다보면 제네릭을 쓰는 경우가 많다. 하지만 막상 떠올리는 것은 "컴파일시 타입을 체크해준다","API의 표현력을 높여준다" 정도로 알고 있었다. 이번 글에서는 그 동안 애매하게 알고 있었던 제네릭에 대한 내용을 다시 정리해 보려고 한다. 기본 문법부터 와일드카드, 그리고 제네릭 소거까지 살펴보면서 실제 코드 예제도 같이 다뤄보려고 한다.2.제네릭이란 ?2-1. 제네릭이 필요한 이유자바 1.4 시절에는 컬렉션이 전부 Object 타입으로 동작했다. 이 경우 타입 체크가 컴파일 시점에 이뤄지지 않아서 런타임 오류로 이어질 수 있었다.List list = new ArrayList();list.add("hell..

목차1.GC?2.GC의 구조 및 작동원리3.GC의 종류 1.GC? GC는 JVM에서 메모리 관리를 위해 사용이 되며 ‘더 이상 참조되지 않는 객체들을 자동으로 탐지하고 해제’하는 역할을 수행합니다. 이를 통해 메모리 관리를 효율적으로 처리하며 프로그램 실행 중에 메모리 누수를 방지하고 메모리 사용을 최적화합니다. 개발자들은 가비지 컬렉터를 통해서 메모리 관리에 대한 직접적인 관여 없이도 안정적인 프로그램을 작성을 할 수 있습니다.가비지 컬렉터는 메모리 영역에서 중에서 힙 영역 내에서 이를 관리를 하고 사용을 합니다. 2.GC의 구조 및 작동원리GC의 구조는 힙영역에서 Young Generation, Old Generation, Meta space로 나뉘어집니다. Young Generation 이 부분..

목차1. 객체 비교가 중요한 이유2.== 연산자의 의미3.equals() 메서드의 의미4.hashCode() 와의 관계5. ==, equals(), hashCode() 차이 정리6.적용 1. 객체 비교가 중요한 이유JPA로 엔티티를 작성하다 보면, 꼭 등장하는 메서드가 있습니다. 바로 equals()와 hashCode()입니다. 단순 CRUD 수준에서는 크게 티가 안 나지만, 엔티티를 컬렉션(Set, Map)에서 다루거나, 영속성 컨텍스트에서 동등성을 판별할 때는 이 두 메서드가 핵심 역할을 합니다. 여기서 의문이 생깁니다. “왜 굳이 엔티티에서 hashCode까지 구현해야 할까?” 그 이유는 객체를 비교하는 방식이 세 가지로 나뉘기 때문입니다.== : 두 객체가 **동일한 메모리 주소(참조)**를 가리..

목차1.작성하게 된 계기2.예외(Exception)란?3. Checked Exception4. Unchecked Exception5. Checked vs Unchecked 비교6. 실무 적용 관점7. 결론 1.작성하게 된 계기일전에 일정관리 프로젝트를 하면서 OpenAI API 응답(JSON 파싱)과 DB 조회를 묶어서 처리하는 코드를 작성했다.@CircuitBreaker(name = "openAiClient", fallbackMethod = "fallbackRecommendSchedules")public List recommendSchedules(String userId, Pageable pageable) throws Exception { Long memberId = memberRepository..

목차1.String2.StringBuilder3.StringBuffer4.성능 실험5.후기 1.String우선 String은 아래와 같은 특징을 가지고 있습니다. 1-1.불변객체 String은 한 번 생성되면 내부 값을 바꿀 수 없음."abc" + "d" → 기존 객체 수정 X , 새로운 객체 생성 O 1-2.문자열 상수 풀 String 리터럴은 Heap 영역의 String Pool에 저장됨.동일한 리터럴을 재사용하여 메모리를 절약.String a = "hello";String b = "hello";System.out.println(a == b); // trueString c = new String("hello");System.out.println(a == c); // false new String..
목차1.문제 출저2. 요구사항3.코드 작성 1.문제 출저https://www.acmicpc.net/problem/308022. 요구사항우선 이 문제를 보고 도출한 요구사항은 아래와 같다. 참가자의 수: N티셔츠 (T)6개의 사이즈가 있다.(S,M,L,XL,XXL,XXXL)같은 사이즈의 T장 묶음.참가자의 수보다 남아도 괜찮다.펜 (P)참가자 수만큼 묶음으로 주문재고는 참가자수이므로 남는게 없다. 첫 입력은 참가자의 수 두번째 입력은 참가자의 수만큼 티셔츠 사이즈의 갯수를 입력 세번째 입력은 티셔츠와 펜의 묶음수 마지막으로 계산을 한 값을 보여준다. sudo 코드는 참가자 입력을 받는다. 참가자의수 만큼 배열을 만들어서 반복문을 돌려서 반복문 안에 티셔츠의 종류의 수를 넣는다. 티셔츠와 펜의 묶음수..