[Spring] 스프링 빈이란? / Spring Bean / 등록 방법 / 빈 스코프 / LifeCycle
·
Development & Projects/Java
1. 빈(Bean)이라는 이름의 유래자바의 유래가 커피의 공급원인 자바 섬에서 나온 것과 같이 재사용이 가능한 자바 객체를 커피콩에 비유해서 자바빈이라고 지었는데, “Bean”은 원래 자바빈(JavaBean) 개념에서 차용된 이름입니다.스프링이 등장하면서 이 개념을 확장하여, “스프링 컨테이너가 관리하는 재사용 가능한 객체”를 스프링 빈(Spring Bean) 이라고 부르게 되었습니다. 2. 스프링 빈이란?스프링 빈이란 스프링 컨테이너(IoC 컨테이너)가 생성하고 관리하는 객체를 말합니다.일반 자바 객체는 개발자가 직접 new로 생성하고 관리합니다.반면 스프링 빈은 스프링 컨테이너가 객체의 생성, 의존성 주입, 소멸 등 전체 생명주기를 관리해 줍니다.객체 간의 의존도와 결합도를 낮추고 높은 캡슐화를 제공..
[Java] 비동기 처리와 스레드 관리
·
Development & Projects/Java
Thread + Runnable가장 기본적인 스레드 생성 방식으로 Runnable 인터페이스에 작업 내용을 정의하고 Thread 객체로 감싸 실행한다.Runnable task = () -> System.out.println("새 스레드에서 작업 실행!");Thread thread = new Thread(task);thread.start(); // 비동기 실행 시작하지만 이 방법은 작업이 필요할 때마다 스레드를 생성하고 파괴해야 한다.그림에 보이는 것처럼 다중 요청이 들어오면 동시에 처리하는게 아닌 요청 1을 처리하고 요청 2를 처리하기에 매우 비효율적이라고 볼 수 있다.ExecutorService매번 스레드를 만들고 없애는 비효율을 없애기 위해 Thread Pool 개념 도입하게 된다.스레드 미리 만들어..
[Java] JVM(Java Virtual Machine)
·
Development & Projects/Java
JVM(Java Virtual Machine)운영체제에 종속받지 않고 CPU가 Java 인식하고 실행할 수 있도록 해주는 가상 컴퓨터이다.→ 이 덕분에 자바는 운영체제에 독립적이라는 장점을 가지게 된다.자바 언어 자체는 CPU가 인식하지 못하기에 기계어로 컴파일을 해줘야 하는데 이때 Java는 byte코드로 변환된 후 JVM이 binary code로 변환된다.Java 작성한 소스파일은 JVM을 거쳐 운영체제와 상호작용 함JVM 덕분에 Java는 “운영체제로부터 독립적”라는 특징을 가짐 (Write Once, Run Anywhere)구조Class Loader클래스 파일(.class)을 로드하고 링크를 통해 배치하는 작업 수행한다. 런타임 시, 동적으로 클래스 로드하고 jar 파일 내 저장된 클래스들을 JV..
[Java] 상속 정리 / 다중 상속 / 다이아몬드 문제
·
Development & Projects/Java
1. super()와 생성자 호출 규칙자바에서 자식 클래스가 부모 클래스를 상속받으면, 자식 생성자에서 부모 생성자를 반드시 호출해야 합니다.이때 super()는 자동으로 삽입되며, 항상 생성자의 첫 줄에 위치해야 합니다.class Parent { private String name; // 기본 생성자가 없음 public Parent(String name) { this.name = name; }}class Child extends Parent { // 컴파일 에러 발생 public Child() { // super(); // 자동 호출되지만 Parent() 기본 생성자가 없어 에러 }} 부모 클래스에 기본 생성자가 존재하면 → super() ..
[Java] 추상 클래스와 인터페이스 정리
·
Development & Projects/Java
추상화란?추상화는 객체들의 공통적인 속성과 기능을 정의함으로써 코드 중복을 줄이고, 클래스 간 관계를 효과적으로 설정하며 유지/보수를 용이하게 하는 기법이다.자바에서는 추상 클래스(abstract class) 와 인터페이스(interface) 를 통해 추상화를 지원한다. 추상 클래스 (Abstract Class)추상 클래스는 클래스지만 직접 인스턴스를 생성할 수 없고, 하나 이상의 추상 메서드(abstract method) 를 포함할 수 있다.즉, 오직 상속을 통해 하위 클래스에서만 완성될 수 있다. abstract class Test { abstract void doSomething(); // 추상 메서드 void commonMethod() { // 일반 메서드 ..
Expo 앱 빌드부터 App Store 배포하기
·
Development & Projects
React Native + Expo로 만든 앱을 iOS App Store에 배포하려면 .ipa 파일을 생성하고, Apple의 심사를 통과해야 합니다. Expo EAS Build를 활용한 iOS 배포 절차입니다. 1. Expo 배포 준비① EAS CLI 설치npm install -g eas-cli② Expo 로그인eas login③ EAS 빌드 초기화eas build:configure 이후 eas.json 파일이 자동 생성됩니다. 2. Apple Developer 계정 연결① Apple Developer 계정 가입https://developer.apple.com/programs/ ② Apple Developer에서 Identifier 등록https://developer.apple.com/account/r..
[Blender] 주요 모드 / 사용법 및 단축키
·
Development & Projects
Blender의 주요 모드 설명모드단축키용도Object ModeTab (기본 모드)오브젝트 전체를 이동, 회전, 스케일 조절할 수 있는 모드입니다. 오브젝트 추가/삭제도 여기서 합니다.Edit ModeTab (선택 후 전환)버텍스, 엣지, 페이스 단위로 3D 모델의 구조를 직접 편집하는 모드입니다. 모델링의 핵심.Sculpt Mode우클릭 > Sculpt Mode 또는 상단 전환붓처럼 조형하면서 메시를 다듬는 모드입니다. 주로 유기체 형태나 예술적 모델링에 사용됩니다.Vertex Paint없음각 버텍스에 색을 직접 칠하는 모드입니다. 텍스처 없이 색상을 표현할 수 있습니다.Weight Paint없음본(Bone) 애니메이션용으로, 각 버텍스가 뼈대에 얼마나 영향을 받는지 가중치(Weight)를 칠하는 모드..
[Java] 자바 컴파일 과정
·
Development & Projects/Java
자바는 다양한 운영체제에서 동일한 코드로 실행되는 OS에 독립적인 특징을 가지고 있습니다. 이것이 가능한 이유는 JVM(Java Vitual Machine) 덕분입니다. JVM(Java Vitual Machine)의 어떠한 기능 때문에 OS에 독립적으로 실행시킬 수 있는지 자바 컴파일 과정을 통해 알아보도록 하겠습니다. 자바 컴파일 과정 순서① .java 파일 작성개발자는 자바 소스코드 파일을 작성합니다.② javac 컴파일러 → 바이트코드 생성 (.class 파일)작성된 소스 파일은 자바 컴파일러(javac)에 의해 컴파일되어 .class 파일이 생성됩니다.이 .class 파일에는 바이트코드(Bytecode) 라는 중간 형태의 코드가 들어 있습니다.이 코드는 CPU가 직접 실행할 수 있는 기계어가 아..