본문 바로가기

객체지향에 대해 1. 절차 지향 프로그래밍 : procedural programming method를 다른 언어에서는 function, procedural이라고 한다. 자바에서는 절차 지향 프로그래밍을 method programming 으로 불리면서 메소드를 이용해서 프로그램을 정리정돈하는 기법을 말한다. 즉, 메소드를 이용해서 작은 부품을 만들고 이것을 결합해서 더 큰 프로그램을 만들어가는 테크닉이 procedural programming이다. 많은 컴퓨터언어가 이 패러다임을 따른다. c언어등. 그런데 여기서 더 나아가 객체지향 프로그래밍이 나왔다. 2. 객체지향 프로그래밍 : Object-Oriented Programming 2-1) 객체란? 서로 연관된 메소드와 변수를 모아서 그룹핑하고 이름을 붙여서 정리정돈하고 ..
DI의 장점 1. 요구사항이 변화하더라도 의존 객체만 한번 수정해 줄뿐, 주입하는 코드는 그대로 이기 때문에 효율적이다. 아래글을 참고하자 https://cg-developer.tistory.com/396 다시보고 2번 내용 수정이 필요하다 2. 테스트 코드 작성시 주입하는 코드의 수정없이 가짜 구현 객체 사용가능. 주입해주고자 하는 클래스가 아직 미완성단계일때, 오버라이딩을 통해 가짜 구현 객체를 사용 하여 테스트 해볼수 있다. 즉, 의존하는 클래스의 구현이 완성되어 있지 않더라도 테스트를 할 수 있다는 점이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 package org.zerock.sample; import org.springframework.stereotype.Service; import ..
의존성 주입방법 2가지 Hotel 클래스는 chineseChef 클래스가 필요한 상황이라고 가정하자. 즉 의존하고 있는 상황이다. 호텔에서는 중국요리사가 필요한것이다. 1 2 3 4 5 public interface Cook { public String cook(); } cs 1 2 3 4 5 6 7 8 9 10 11 12 13 package org.zerock.sample; import org.springframework.stereotype.Service; import lombok.Data; @Data @Service public class ChineseChef implements Cook { @Override public String cook(){ return "chinese cook"; } } Colored by Colo..
스프링 컨테이너 종류 1. BeanFactory와 ApplicationContext의 관계 스프링은 BeanFactory와 ApplicationContext의 두 가지 타입의 컨테이너를 제공한다. BeanFactory 계열의 인터페이스만 구현한 클래스는 단순히 컨테이너에서 객체를 생성하 고 DI를 처리해주는 기능만을 제공한다. 하지만 스프링이 제공하는 다양한 부가 기능(편리한 트랜잭션 처리, 자바 코드 기반 스프링 설 정, 애노테이션을 사용한 빈 설정, 스프링을 이용한 웹 개발, 메시지 처리 등)을 사용하려면 ApplicationContext 계열을 사용해야 한다. 2. ApplicationContext 인터페이스와 관련된 클래스 계층 구조 가장 말단에 위치한 클래스가 실제로 사용되는 구현 클래스로서, 이들은 다음과 같다. ..
스프링의 가장 기본적인 기능 - 객체를 생성/조립/사용/관리에 대해 1. 스프링의 가장 기본적인 기능은 객체 생성/조립/관리에 대한 것이다. 스프링의 가장 기본적인 기능은 객체를 생성하고 초기화하여 필요로 하는 곳에 제공하는것인데,이 중심에는 DI(Dependency Injection)라는 설계 패턴이 적용되어 있다. 스프링은 기본적으로 DI를 기반으로 동작하기 때문에,스프링을 잘 사용하려면이에 대한 이해가 필수적이다 스프링은 객체를 생성하고 연결해주는 DI 컨테이너 스프링을 떠받치고 있는 핵심 기능 중의 하나가 바로 DI 이다. 스프링은 객체를 생성하고 각 객체를 연결해주는 조립기 역할을 하게 된다 이렇게 생성한 객체를 보관하기 때문에 스프링을 객체 컨테이너 라고도 부른다
컴파일,빌드,배포 과정 1. 영문으로된 글을 한글로 번역하는 것은 컴파일이다. 2. 번역한 글을 책으로 엮는 것은 빌드이다. 3. 완성된 책을 고객들이 읽을 수 있도록 서점에 진열하는 것은 배포이다. 4. 1~2번 과정을 하나로 묶어 '빌드 한다'고 하기도 한다. ------------------------------------------------------------------------------------ 1. 컴파일: 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 일 2. 빌드: 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일혹은 컴파일을 포함해 war, jar 등의 실행 가능한 파일을 뽑아내기까지의 과정을 빌드한다고도 함.소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말..
런타임과 컴파일 1. 컴파일(Compile) 컴파일이란 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정을 말한다. (목적파일이 생성됨) 즉, 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 이러한 작업을 해주는 프로그 램을 가르켜 컴파일러(Compiler- javac.exe)라 한다. 자바의 경우, 자바가상머신(JVM)에서 실행가능한 바이트코드 형태의 클래스파일이 생성이 된다. .java 파일을 .class파일로 만듬 2. 런타임 어떤 프로그램이 실행되는 동안의 time이다. 3. 런타임 에러 어떤 프로그램이 실행되는 동안 발생하는 에러이다. 4. compile time 고급언어(프로그래밍 언어)를 기계어로 변경하는 과정이다. 5. 컴파일 에러 고급언어(프로그래밍 언어)를 기계어로 변경하는 과정에서 발생하..
클래스패스란? 클래스패스란(Class Path)란? 클래스패스란 말 그대로 클래스를 찾기위한 경로이다. 자바에서 클래스패스의 의미도 똑같다. 즉, JVM이 프로그램을 실행할 때, 클래스파일을 찾는 데 기준이 되는 파일 경로를 말하는 것이다. 소스 코드(.java로 끝나는 파일)를 컴파일하면 소스 코드 가 “바이트 코드”(바이너리 형태의 .class 파일)로 변환된다. java runtime(java 또는 jre)으로 이 .class 파일에 포함된 명령을 실행하려면, 먼저 이 파일을 찾 을 수 있어야 한다. 이때 .class 파일을 찾을 때 classpath에 지정된 경로를 사용한다. classpath는 .class 파일이 포함된 디렉토리와 파일을 콜론으로 구분한 목록이다. java runtime은 이 classpath..