목록자바 (19)
영권's
IoC Inversion of Control의 약자로 "제어의 역전"을 뜻하는데 객체의 생성부터 호출, 관리등을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미합니다.또한 DI(Dependency Injection)이라고도 합니다. IoC에서 객체를 생성하고 종속성을 정의하는 과정은 객체를 생성자 인수, 팩토리 메서드에 대한 인수 또는 팩토리 메서드에서 반환된 객체 인스턴스에 설정 Properties들을 통해서만 가능합니다. 그런 다음 컨테이너는 빈을 생성할 때 이러한 종속성을 주입합니다. 이 과정은 기본적으로 클래스를 직접 인스턴스화 하는 방법과는 반대입니다. org.springframework.beans및 org.springframework.context패키지는 Spring 프레임 워크의..
Spring기반 어플리케이션 프로젝트 만들기 Manual Setup Maven / Gradle 로 프로젝트를 만들고 pom.xml 이나 build.gradle 을 직접 수정합니다. Spring Boot (https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.installing.java) Spring Boot CLI를 이용해서 설치하는 법 spring-boot-cli 설치 후 압축을 푼다. 윈도우 기준으로 시스템 변수에 SPRING_HOME 이라는 변수명으로 압축 푼 파일 경로를 설정한다. 그 후 시스템 변수 PATH에 %SPRING_HOME%\bin으로 Spring-boot-cli..
자바 Concurrent 프로그래밍 Concurrent 소프트웨어 동시에 여러 작업을 할 수 있는 소프트웨어 예) 웹 브라우저로 유튜브를 보면서 키보드로 타이핑을 할 수 있다. 예) 녹화를 하면서 인텔리J로 코딩을 하고 워드에 적어둔 문서를 보거나 수정할 수 있다. 자바에서 지원하는 Concurrent 프로그래밍 멀티 프로세싱(ProcessBuilder) 멀티 쓰레드 자바 멀티쓰레드 프로그래밍 Thread / Runnable 기존 자바에서 멀티 쓰레드 사용법 // Thread 상속 public static void main(String[] args) { MyThread myThread = new MyThread(); MyThread.start(); System.out.println("Hello : " +..
Optional은 자바8에서 새로 추가된 인터페이스이다. Optional이 나오게 된 이유 null을 반환하면 별도의 null 처리를 해야하며 null 처리를 무시하고 반환된 null 값을 어딘가에 저장하면 언젠가 NPE가 발생한다. 그것도 근본적인 원인, 즉 null을 반환하게 한 실제 원인과는 전혀 상관없는 코드에서... null 값을 참조하려고 하는 경우 NPE 가 나오게 된다. 이런 에러는 보통 if(progress != null)과 같이 조건문을 사용해서 해결하게 된다. 하지만 이런 방법은 사람이 코딩하는데 있어서 에러를 만들기 쉬운 코딩 방법중 하나이다. 해결하는 방법은 아주 간단하지만 근본적인 이유를 해결하는 것이 아니다. (사람이 코딩하는 것이기 때문에 실수를 해서 널 체크를 하지 않을 수..
java 프로그래밍이란 java와 c/c++의 차이점 java와 c/c++의 가장 큰 차이점은 실행 환경이다. java에서의 개발: 컴파일 혹은 컴파일 + jar압축 자바는 링크 과정이 없이 컴파일러가 바로 바이트 코드를 생성 c/c++에서의 개발: 컴파일 + 링크 java 언어의 장단점 장점 운영체제에 독립적이다. JVM에서 동작하기 때문에, 특정 운영체제에 종속되지 않는다. 객체지향 언어이다. 객체지향적으로 프로그래밍 하기 위해 여러 언어적 지원을 하고있다. (캡슐화, 상속, 추상화, 다형성 등) 객체지향 패러다임의 특성상 비교적 이해하고 배우기 쉽다. 자동으로 메모리 관리를 해준다. JVM에서 Garbage Collector라고 불리는 데몬 쓰레드에 의해 GC(Garbage Collection)가 ..
자바를 이용하여 개발하는 개발자라면 누구나 자바 바이트코드가 JRE 위에서 동작한다는 사실을 잘 알고 있습니다. 이 JRE에서 가장 중요한 요소는 자바 바이트코드를 해석하고 실행하는 JVM(Java Virtual Machine)입니다. JRE는 자바 API와 JVM으로 구성되며, JVM의 역할은 자바 애플리케이션을 클래스 로더(Class Loader)를 통해 읽어 들여서 자바 API와 함께 실행하는 것입니다. 가상 머신 가상 머신(virtual machine)이란 여러 가지로 정의할 수 있지만, 프로그램을 실행하기 위해 물리적 머신(즉, 컴퓨터)와 유사한 머신을 소프트웨어로 구현한 것을 말한다고 할 수 있다. 지금은 비록 빛이 바랜 목표이긴 하나 자바는 원래 WORA(Write Once Run Anywh..