일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 깃헙
- 계층형
- til #데이터베이스 #sql
- Java
- 스파르타코딩클럽 #개발자 #백엔드
- 스파르타사전캠프
- 캡슐화
- 프레임워크
- 함바그
- Framework
- 메모리구조
- 요시
- springboot
- jvm
- 내일배움캠프
- 스파르타코딩클럽
- optional
- 패키지구조
- 레퍼클래스
- 스파르타코딩클럽 #사전캠프
- 자바
- 도메인별
- static
- 스프링부트
- 스터디카페
- 키오스크
- 사전캠프
- Til
- 깃
- Spring
- Today
- Total
목록분류 전체보기 (57)
John's Code Journey

🔸 영속성이란?데이터가 메모리에만 있지 않고, DB에 저장되어서 "오래도록 유지될 수 있는 상태" 를 뜻함. 📍 쉽게 말하면?우리가 자바 프로그램에서 어떤 객체를 만들면, 그 객체는 프로그램이 종료되면 사라진다.그런데 그걸 데이터베이스에 저장하면, 프로그램이 꺼져도 그 데이터는 계속 남아 있음.이렇게 "오래 살아남는" 상태를 영속(Persistent)이라고 함.🔸 비유로 이해하기✅ 비영속 상태Member member = new Member(); // 그냥 자바 객체그냥 메모리에만 있음. 저장 안 된 상태.컴퓨터 꺼지면 사라짐.✅ 영속 상태em.persist(member);JPA가 이 객체를 영속성 컨텍스트에 등록하고, 나중에 DB에 insert함.데이터베이스에 저장되면 오래 살아남는 상태가 됨 → ..

1. ☕ JVM이란?JVM(Java Virtual Machine) 은 자바 애플리케이션을 실행시키기 위한 가상의 컴퓨터입니다.자바는 "한 번 작성하면 어디서든 실행 가능하다 (Write Once, Run Anywhere)"는 철학을 가지고 있고,이 철학을 실현시켜주는 핵심 기술이 바로 JVM입니다.즉, JVM은 자바로 작성된 프로그램을 운영체제와 무관하게 실행할 수 있도록 해주는 추상화된 실행 환경입니다.2. 🛠 Java 프로그램 실행 과정[Java Source Code: Hello.java] -> [javac 컴파일] -> [Bytecode: Hello.class] -> [JVM이 실행 → OS 위에서 동작]즉, 자바 프로그램은 직접 운영체제 위에서 실행되는 게 아니라,JVM이라는 중간 계층을 거쳐서..

✅ @CreatedDate vs @CreationTimestamp @CreatedDate@CreatedTimestamp제공Spring Data JPAHibernate조건@EnableJpaAuditing + @EntityListeners 필요별다른 설정 없이 작동작동 시점persist() 전 단계에 Spring이 값 지정Hibernate가 insert 시점에 DB에 넣음장점더 유연하게 커스터마이징 가능설정이 간단하고 빠르게 적용됨단점설정 필요 (Auditing)Spring Data Auditing과 중복되면 ❌ 충돌 가능🟢 요약둘 다 "생성일 자동 설정"이지만 작동 방식이 다르고, 중복해서 쓰면 안 됨!Spring에서 BaseEntity 만들어서 @CreatedDate 사용하는 걸 선호하는 추세라고함...

💡 DI(Dependency Injection 의존성 주입)란?DI(의존성 주입)는 객체 간의 의존 관계를 개발자가 직접 생성하지 않고, 스프링이 자동으로 주입해주는 기능이다.간단히 말해, 필요한 객체를 "내가 직접 생성"하는 것이 아니라 "스프링이 제공"해주는 것 . 1️⃣ DI 없이 직접 객체 생성하는 경우 (Bad Example)아래처럼 UserService가 UserRepository 객체를 직접 생성하면 코드 수정이 어렵고, 테스트하기 어려운 코드가 된다.public class UserService { private final UserRepository userRepository = new UserRepository(); // 직접 객체 생성 ❌ public void someMeth..

✅ 1. Spring Boot에서 데이터 흐름Spring Boot는 객체를 주입하여 각 계층을 연결하고, 메서드 호출을 통해 데이터를 주고받음📌 데이터 흐름 예제 (GET /users 요청)[클라이언트 요청] → [Controller] → [Service] → [Repository] → [Database] 📌 데이터가 다시 응답으로 가는 흐름[Database] → [Repository] → [Service] → [Controller] → [클라이언트 응답] ✅ 2. 코드 흐름 분석1️⃣ Controller: 요청을 받음@RestController@RequestMapping("/users")public class UserController { private final UserService use..
인터넷전 세계의 컴퓨터와 기기들이 서로 연결되어 정보를 주고받을 수 있게 해주는 네트워크 시스템이에요. 인터넷을 통해 우리는 웹사이트를 방문하거나, 이메일을 주고받고, 소셜 미디어를 사용하거나, 동영상을 스트리밍하는 등 다양한 활동을 할 수 있다.쉽게 말해, 인터넷은 사람들이 정보를 공유하고 소통할 수 있는 거대한 디지털 공간이라고 할 수 있다. 인터넷 프로토콜 IP(Internet Protocol)인터넷에서 데이터가 올바르게 전달될 수 있도록 규칙을 정해놓은 통신 규약이다.쉽게 말해, 컴퓨터나 기기가 서로 데이터를 주고받을 때, 그 데이터가 어디서 어디로 가는지, 어떻게 전달될지를 정의하는 일종의 "주소 체계"라고 할 수 있다. Packet패킷(Packet)은 소스 IP, 대상 IP를 포함하고 있어서 ..

필수 과제 level5 까지 구현했다 https://github.com/johnb9823/KioskProject GitHub - johnb9823/KioskProjectContribute to johnb9823/KioskProject development by creating an account on GitHub.github.com 레벨 1은 수월하게 구현했던 거 같은데 레벨2 에서 컬랙션프레임워크를 사용할 때 부터 조금 어려웠던 것 같다. 강의로만 듣다가 직접 만들어 보니 내가 어떤 점이 부족했는지 알게되었다.List menuItems = new ArrayList();ArrayList menuItems = new ArrayList();레벨2에서 처음에 List를 선언 할 때는 ArrayList menu..
계산기 과제 피드백을 바탕으로 코드수정을 했다.튜터님께 이러한 피드백을 받았다.Lv1 - while문의 조건절에는 true를 주는 것 보다는 해당 while을 종료하기 위한 식을 작성해주거나 boolean 변수로 무한 루프가 발생할 수 있는 부분을 방지해주시는게 중요합니다. - 입력 값이 숫자형이 아닌 경우 Integer.parseInt()로 파싱 시 InputMismatchException이 발생할 수 있습니다. 해당 부분을 try - catch로 예외처리 해보시면 좋겠어요. - “exit”의 경우 전역변수로 선언하여 사용해도 괜찮지만 해당 코드의 경우 static final로 상수처리하여 사용하는게 더 적합하겠어요. - input.equals("exit") 과 같이 동등비교하실 때에는 상수값을 앞에두..

컬렉션은 다수의 데이터, 프레임워크는 표준화된 프로그래밍 방식을 의미한다. 따라서 컬렉션 프레임워크란 데이터 그룹을 저장하는 클래스들을 표준화한 설계이다. 컬렉션 프레임워크를 활용하면 객체 지향적이고 재사용성이 높은 코드를 작성할 수 있다. 1. 인터페이스(Interfaces)Collection: 가장 기본이 되는 인터페이스로, 데이터를 저장하는 기본적인 기능을 제공합니다. List, Set, Queue 등이 Collection을 상속합니다.List: 순서가 있는 데이터 집합을 저장합니다. 중복을 허용합니다. 예: ArrayList, LinkedListSet: 중복을 허용하지 않는 데이터 집합을 저장합니다. 순서는 보장되지 않습니다. 예: HashSet, TreeSetQueue: FIFO(First-I..
package calculatorlevel2;import java.util.ArrayList;import java.util.List;public class Calculator { /* 연산 결과를 저장하는 컬렉션 타입 필드 선언 및 생성 */ private List results = new ArrayList(); // 사칙연산 메서드들 public double add(double num1, double num2) { double result = num1 + num2; results.add(result); return result; } public double subtract(double num1, double num2) { ..