글

라벨이 java인 게시물 표시

Spring Boot 주요 어노테이션

 ### **📌 Spring Boot에서 꼭 알아야 할 주요 어노테이션 정리!** 🚀 Spring에는 **많은 어노테이션이 있지만, 기본적으로 자주 쓰이는 것들만 먼저 익히면 돼.**\ 💡 **기본적으로 알아야 할 어노테이션은 크게 5가지 카테고리로 정리할 수 있어.** * * * * * **📌 1️⃣ Spring 핵심 어노테이션 (빈 & 의존성 주입)** --------------------------------------- | 어노테이션 | 역할 | | --- | --- | | `@Component` | **Spring 빈(객체)으로 등록** | | `@Service` | **비즈니스 로직을 담당하는 서비스 레이어 등록** (`@Component`와 같은 역할) | | `@Repository` | **데이터베이스와 연결되는 레이어 등록** (예: JPA Repository) | | `@Controller` | **Spring MVC 컨트롤러 등록** (사용자 요청 처리) | | `@RestController` | `@Controller + @ResponseBody` (JSON 응답을 반환하는 컨트롤러) | | `@Autowired` | **Spring이 자동으로 의존성 주입** | 📌 **예제** ``` @Component public class MyComponent {     public void hello() {         System.out.println("Hello from MyComponent!");     } } ``` ``` @Service public class MyService {     private final MyComponent myComponent;     @Autowired  // ✅ 의존성 주입     public MyService(MyComponent myComponen...

java public static 키워드

**Java는 다른 언어보다 `public`, `static` 같은 키워드를 많이 붙이는 편**입니다.\ 이것은 Java의 **엄격한 객체지향 구조**와 **명시적인 접근 제어** 때문입니다. * * * * * **1\. Java에서 `public`, `static`이 많이 붙는 이유** =========================================== **1.1 `public`이 많이 붙는 이유 → 엄격한 접근 제어** -------------------------------------- > **Java는 객체지향에서 "접근 제어"를 엄격하게 적용하는 언어**입니다. -   클래스, 메서드, 변수의 접근을 `public`, `private`, `protected` 등으로 명확히 정의해야 합니다. 🔹 **Java에서는 기본 접근 제어자가 (default) 이므로, 명확한 접근 제어를 위해 `public`을 자주 사용**합니다. ### **예제: `public` 사용** ``` public class Car { // 다른 패키지에서도 접근 가능     public String brand; // 어디서든 접근 가능     public void drive() { // 어디서든 호출 가능         System.out.println(brand + " is driving!");     } } ``` ✅ **Java에서는 접근 수준을 명확하게 설정해야 하기 때문에 `public`을 많이 사용!**\ ✅ **Python, JavaScript 같은 언어는 접근 제어가 약해서 `public` 같은 키워드 없이도 가능!** * * * * * **1.2 `static`이 많이 붙는 이유 → 객체 생성 없이 사용하기 위해** --------------------------------------------- > **Java에서는 메서드를 호출하려면 원...

객체지향적인 특징이 강한 Java

 **Java는 다른 언어들보다 유독 객체지향적인 특징이 강한 언어**입니다. Java는 **객체지향 프로그래밍(Object-Oriented Programming, OOP)** 원칙을 철저하게 따르도록 설계된 언어입니다. 아래에서 **Java가 객체지향적인 이유**와 **다른 언어들과의 차이점**을 정리해 보겠습니다. 🚀 * * * * * **1\. Java가 유독 객체지향적인 이유** ========================== **1.1 모든 것이 객체다 (Everything is an Object)** ------------------------------------------- -   **기본 자료형을 제외한 모든 것이 객체**입니다. (`int`, `double` 등은 기본 자료형이지만, 이를 감싸는 `Integer`, `Double` 같은 래퍼 클래스가 존재) -   Java 프로그램은 **클래스(Class)**와 **객체(Object)**를 중심으로 설계됩니다. ``` // 객체를 기반으로 동작 class Car {     String brand;     public void drive() {         System.out.println(brand + " is driving!");     } } public class Main {     public static void main(String[] args) {         Car myCar = new Car();         myCar.brand = "Tesla";         myCar.drive(); // Tesla is driving!     } } ``` * * * * * **1.2 100% 클래스 기반**...

JDK(Java Development Kit), JRE(Java Runtime Environment), JVM(Java Virtual Machine)

 **JDK(Java Development Kit)**, **JRE(Java Runtime Environment)**, 그리고 **JVM(Java Virtual Machine)**은 Java의 실행 및 개발 환경과 관련된 핵심 요소들입니다. 이들의 역할과 차이를 명확히 이해하면 Java 생태계를 잘 이해할 수 있습니다. * * * * * **1\. JVM (Java Virtual Machine)** ---------------------------------- ### **JVM의 역할** -   **Java 프로그램을 실행**하는 역할을 담당합니다. -   Java 소스 코드를 **바이트코드(Bytecode)**로 컴파일한 후, 이 바이트코드를 실행합니다. -   **플랫폼 독립성**을 제공하는 핵심 요소입니다.     -   Java 프로그램은 어떤 OS에서도 실행되는데, 이는 JVM이 OS에 맞게 동작하기 때문입니다. ### **주요 기능** 1.  **로딩**:     -   클래스 로더(Class Loader)가 바이트코드를 메모리에 로드. 2.  **검사**:     -   로드된 바이트코드의 안전성을 확인. 3.  **해석**:     -   바이트코드를 인터프리터 방식 또는 JIT(Just-In-Time) 컴파일러로 기계어로 변환하여 실행. 4.  **가비지 컬렉션(Garbage Collection)**:     -   불필요한 메모리를 자동으로 회수. * * * * * **2\. JRE (Java Runtime Environment)** -------------------------------------- ### **JRE의 역할** -   **Java 프로...

Java 복습 목차

Java를 공부할 때 필요한 개념들을 체계적으로 정리한 목차를 아래에 작성했습니다. **초급 → 중급 → 고급** 순으로 정리했으니, 학습 순서에 맞게 참고하시면 좋습니다. * * * * * **Java 공부 목차** ============== **1\. Java 기초** --------------- 1.  Java 소개 및 설치     -   Java의 특징     -   JDK, JRE, JVM의 차이     -   Java 설치 및 환경 변수 설정 2.  기본 문법     -   프로그램 구조 (`main` 메서드)     -   기본 자료형 (`int`, `double`, `boolean` 등)     -   변수와 상수     -   데이터 타입 변환     -   주석 처리 3.  제어문     -   조건문 (`if`, `switch`)     -   반복문 (`for`, `while`, `do-while`)     -   break와 continue 4.  배열     -   1차원 배열     -   다차원 배열     -   배열의 초기화와 활용 * * * * * **2\. 객체지향 프로그래밍 (OOP)** ------------------------ 1.  클래스와 객체     -   클래스 정의 및 객체 생성     -   멤버 변수와...

[java]빈자리 만큼 0으로 채우기

String.format( "%02d" , 1 ) 01로 출력

[android]cannot resolve symbol 'databinding'

 dependencies 추가 했는데도 오류 떴다. For android studio 4.0, You should try with   viewBinding = true android { buildFeatures { viewBinding = true } } 그리고 build clean 하고 rebuild 해서 해결

안드로이드 스튜디오 에뮬레이터 튕김 문제

 컴퓨터 사양 문제인줄 알았는데 그냥 코드에 오타난 거였다;;

[java] spring 빌드하면 완료 안되고 계속 로딩만 할 때 해결

Execution failed for task ':HelloSpringApplication.main()'. > Build cancelled while executing task ':HelloSpringApplication.main()' * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. 1. preference 들어가서 build tools> gradle에서 build and run using run test using 을 인텔리제이로 바꿔준다 해결 안되면 2. 자바 JDK 다시깔기  https://www.inflearn.com/questions/116973

[spring boot] 빌드하고 종료했더니 에러 Build cancelled while executing task

이미지
Build cancelled while executing task intelliJ에서 preference 들어가서 gradle 검색후 build and run using 이랑 run tests using을 intellij로 바꾸고 인텔리제이 껐다가 켰더니 해결