1월, 2025의 게시물 표시

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 프로...

Spring 빈(Bean)

 ### **Spring에서 빈(Bean)이란?** **Spring Bean(스프링 빈)**은 **Spring IoC 컨테이너(Bean Container)**가 관리하는 **객체**를 의미합니다.\ 즉, Spring이 자동으로 생성하고 관리하는 인스턴스를 **Bean**이라고 부릅니다. * * * * * **1\. 빈(Bean)이 왜 필요할까?** ------------------------ 자바에서는 객체를 사용할 때 `new` 키워드를 사용하여 직접 생성하는 경우가 많습니다. ``` public class UserService {     private UserRepository userRepository = new UserRepository(); } ``` -   하지만 위처럼 직접 객체를 생성하면 **코드가 하드코딩**되고, -   유지보수가 어렵고, **객체 간의 결합도가 높아지는 문제**가 발생합니다. ✅ **해결책**: Spring의 **빈 컨테이너**를 사용하여 객체를 자동으로 관리!\ Spring에서는 객체를 직접 생성하지 않고, **Spring이 자동으로 생성하고 주입**하도록 설계할 수 있습니다. ``` @Service public class UserService {     private final UserRepository userRepository;     public UserService(UserRepository userRepository) { // 빈을 자동 주입         this.userRepository = userRepository;     } } ``` ➡ **객체 생성을 Spring이 관리하므로, 유지보수가 쉬워지고 결합도가 낮아짐.** * * * * * **2\. 빈(Bean)을 만드는 방법** ----------------------- Spring에서 빈을 등록하는 방...

대부분의 프레임워크는 인스턴스 생성 관리를 자동화

**대부분의 프레임워크는 인스턴스를 직접 생성하고 관리하는 일을 최소화하고, 자동화하는 데 집중합니다.**\ 이는 개발자가 **객체(인스턴스) 생성과 관리에 신경 쓰지 않고, 필요한 기능을 구현하는 데 집중**할 수 있도록 하기 위함입니다. * * * * * **🔹 1. Spring과 React의 인스턴스 관리 비교** ----------------------------------- ### ✅ **Spring: 빈(Bean) 관리 & 의존성 주입(DI)** -   **Spring이 객체(빈)를 직접 생성 & 관리**하고, 필요한 곳에 **자동으로 주입**해 줌. -   필요할 때만 객체를 생성하고, 기본적으로 **싱글톤(Singleton) 패턴**을 사용하여 재사용함. ### ✅ **React: 가상 DOM(Virtual DOM) & 컴포넌트 상태 관리** -   **컴포넌트의 상태(state)를 자동으로 관리**하고, 변경된 부분만 업데이트하여 성능 최적화. -   **React는 UI를 새로 그릴 필요 없이 변경된 부분만 효율적으로 반영(Virtual DOM 활용)**. -   **메모리 효율을 위해 불필요한 컴포넌트 생성을 방지하고, 재사용 가능**. ➡ **둘 다 인스턴스(객체)를 직접 생성 & 관리하지 않고, 최적화된 방식으로 자동 처리함!** * * * * * **🔹 2. 다른 프레임워크도 인스턴스 관리를 자동화한다** ---------------------------------- 다른 대표적인 프레임워크들도 **객체 관리 & 메모리 최적화**에 힘을 씁니다. | **프레임워크** | **주요 인스턴스 관리 방식** | | --- | --- | | **Spring (Java)** | 빈(Bean) 컨테이너, DI, 싱글톤 관리 | | **React (JS)** | Virtual DOM, 컴포넌트 상태 관리 | | **Vue....

spring boot 프로젝트 생성시 나오는 리드미

프로젝트 생성시 나오는 리드미인데 읽을거리 있나 싶어서 옮겨둠 # Getting Started ### Reference Documentation For further reference, please consider the following sections: * [Official Gradle documentation](https://docs.gradle.org) * [Spring Boot Gradle Plugin Reference Guide](https://docs.spring.io/spring-boot/3.4.2/gradle-plugin) * [Create an OCI image](https://docs.spring.io/spring-boot/3.4.2/gradle-plugin/packaging-oci-image.html) * [Spring Boot DevTools](https://docs.spring.io/spring-boot/3.4.2/reference/using/devtools.html) * [Spring Web](https://docs.spring.io/spring-boot/3.4.2/reference/web/servlet.html) * [Spring Data JPA](https://docs.spring.io/spring-boot/3.4.2/reference/data/sql.html#data.sql.jpa-and-spring-data) ### Guides The following guides illustrate how to use some features concretely: * [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) * [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) * [Building REST services with Spring](https:/...

웹사이트 캡쳐 방어

인프런 강의 캡쳐 방어 캡쳐 안되길래 신기했음. 웹인데도  DRM 으로 강의 캡쳐를 막아서 캡쳐 도구를 감지하는게 신기 --- 인프런 강의에서 캡쳐 방어가 되어 있는 걸 보면, 보안 수준을 꽤 신경 쓴 것 같네요. 웹 환경에서도 캡쳐를 막는 방법에는 여러 가지가 있는데, 보통 DRM(Digital Rights Management)이나 JavaScript 기반 방어 기법을 조합해서 사용하는 경우가 많아요. ### 📌 **웹에서 캡쳐 방어하는 방법들** 1.  **DRM 적용 (Widevine, PlayReady, FairPlay 등)**     -   동영상 자체를 암호화하고, 특정 인증을 받은 환경에서만 재생되도록 설정.     -   이 방식이면 캡쳐 소프트웨어에서도 녹화가 안 될 가능성이 큼.     -   보통 비디오 스트리밍 서비스에서 사용. 2.  **CSS 및 JavaScript 방어**     -   `pointer-events: none;`을 이용해 우클릭 및 개발자 도구 방지.     -   `visibility:hidden` 같은 스타일을 사용하여 특정 조건에서 콘텐츠 숨기기.     -   `oncontextmenu="return false;"`로 우클릭 방지. 3.  **Canvas Fingerprinting 및 Tamper Detection**     -   `Canvas API`를 이용해 브라우저의 스크린샷 감지.     -   DevTools에서 특정 키 입력을 감지하고 강제 종료하거나, `debugger` 키워드로 디버깅 방해. 4.  **Blur 처리 및 Overlay 적용**     -...

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.  클래스와 객체     -   클래스 정의 및 객체 생성     -   멤버 변수와...

sprint boot 어노테이션

 **Spring Boot**에서 사용하는 **어노테이션(Annotation)**은 **메타데이터** 역할을 하며, 코드에 의미를 부여하고 특정 기능을 활성화하는 데 사용됩니다. Spring에서는 어노테이션을 통해 **의존성 주입**, **요청 처리**, **데이터 매핑** 등의 작업을 간단하게 처리할 수 있습니다. * * * * * **1\. 어노테이션의 역할** ----------------- 어노테이션은 다음과 같은 역할을 합니다: 1.  **구성(Configuration)**:     -   애플리케이션의 동작 방식을 설정합니다.     -   예: `@Configuration`, `@EnableAutoConfiguration` 2.  **의존성 주입(Dependency Injection)**:     -   Spring이 객체를 자동으로 관리하고 주입할 수 있도록 설정합니다.     -   예: `@Autowired`, `@Component` 3.  **웹 요청 처리**:     -   HTTP 요청과 컨트롤러 메서드를 연결합니다.     -   예: `@RestController`, `@GetMapping`, `@PostMapping` 4.  **데이터 매핑**:     -   데이터베이스 테이블과 자바 객체(Entity)를 매핑합니다.     -   예: `@Entity`, `@Table`, `@Column` 5.  **제어 흐름 및 기타 기능**:     -   AOP(Aspect-Oriented Programming)나 트랜잭션 관리를 활성화합니다.     -...

perplexity api 비용

  Pricing Model Price per 1000 requests Price per 1M tokens llama-3.1-sonar-small-128k-online $5 $0.2 llama-3.1-sonar-large-128k-online $5 $1 llama-3.1-sonar-huge-128k-online $5 $5

주피터 커널 언어 추가 관련

  https://github.com/jupyter/jupyter/wiki/Jupyter-kernels https://jupyter4edu.github.io/jupyter-edu-book/jupyter.html

간단한 html 구성해주는 사이트

  https://neocities.org/ html css 올리면 사이트 배포 해주는 곳clutter core https://hot.page/ https://mmm.page/ 드래그 앤 드롭으로 화면 구성 https://ichi.city/ https://multiverse.plus/

three js vue

three js vue  https://tresjs.org/