Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

00B. 자바8 람다와 인터페이스 스펙 변화

🌱 오늘의 주제 : 자바8 람다와 인터페이스 스펙 변화 🌱 람다가 도입된 이유 람다가 도입된 이유는 기업 환경 변화와 프로그래머들의 요구이다. 기업들은 빅데이터들의 분석 및 활용을 통해 기업 전략을 수립하고, 수익을 극대화하고자 하기에, 빅데이터를 프로그램적으로 다룰 수 있는 방법이 필요졌다. 그 방법의 중심에는 멀티 코어를 활용한 분산 처리, 즉 병렬화 기술이 필요하다. 병렬화를 위해 컬렉션 (배열, List, Set, Map)을 강화했고, 이러한 컬렉션을 더 효율적으로 사용하기 위해 스트림을 강화했다. 스트림을 효율적으로 사용하기 위해 함수형 프로그래밍이 나타났고, 다시 함수형 프로그래밍을 위해 람다가 도입되었다. 람다를 위해 다시 인터페이스의 변화가 수반됐다. 람다를 지원하기 위한 인터페이스를 함수..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

00A. 스프링 MVC를 이용한 게시판 구축 (2)

🌱 오늘의 주제 : 스프링 MVC를 이용한 게시판 구축 (2) 🌱 서비스 구현 일반적으로 DAO(Mapper)는 데이터베이스 테이블 당 하나를 만든다. 하지만, 사용자에게 제공되는 서비스는 여러 테이블의 정보를 조합해서 제공하는 경우가 많다. 따라서, 하나의 서비스에서 다수의 DAO를 사용하기도 하고 때로는 다수의 서비스가 하나의 DAO를 사용하기도 한다. Service는 DAO와 연동뿐만 아니라 서버 기술 (웹, 클라이언트/ 서버)이나 각 벤더별 데이터 베이스에 종속되지 않는 로직을 구현하는 곳이기도 한다. 🌱 목록 구현 스프링 MVC에서 C, 즉 컨트롤러(controller)의 역할을 수행한 클래스를 추가 후, @Controller 어노테이션을 지정하고 @RequestMapping 어노테이션을 지정한..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

00A. 스프링 MVC를 이용한 게시판 구축 (1)

🌱 오늘의 주제 : 스프링 MVC를 이용한 게시판 구축 (1) 🌱 A.1 URL과 @RequestMapping 연결하기 스프링 MVC에서는 @Controller 어노테이션이 붙은 클래스 안에 @RequestMapping 어노테이션이 붙은 메서드에서 클라이언트 요청을 처리하게 된다. 클라이언트가 http://localhost:8080/mvc/라고 URL을 입력하고 웹 서버에 서비스를 요청하면 서블릿 컨테이너가 mvc라고 하는 웹 컨텍스트를 찾고 해당 웹 컨텍스트는 스프링 ApplicationContext에게 URL 중에 /를 처리할 수 있는, 즉 @RequestMapping(value="/")를 가진 메서드에게 처리를 위임한다. @ResponseBody는 아래 메서드에서 반환하는 문자열을 그대로 클라이언트..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

07. Spring - 의존성 주입

🌱 오늘의 주제 : 의존성 주입 🌱 @Autowired를 통한 속성 주입 스프링 설정 파일을 보고 자동으로 속성의 설정자 메서드에 해당하는 역할을 해준다. 스프링의 @Autowired 장점은 type 기준 매칭에 있다. 만약 같은 타입을 구현한 클래스가 여러개 있다면 그때 bean 태그의 id로 구분해서 매칭하게 되는 것이다. id와 type 중 type 구현에 우선순위가 있다. 🌱 @Resource를 통한 속성 주입 @Resource는 자바 표준 어노테이션이다. type과 id 가운데 매칭 우선순위는 id가 높다. id매칭할 빈을 찾지 못한 경우 type으로 매칭할 빈을 찾게 된다.

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

07. 스프링 삼각형과 설정 정보 (1)

🌱 오늘의 주제 : 07. 스프링 삼각형과 설정 정보 (1) 🌱 07. 스프링 삼각형과 설정 정보 POJP(Plain Old Java Object)를 기반으로 스프링 삼각형이라는 애칭을 가진 IoC/DI, AOP, PSA라고 하는 스프링의 3대 프로그래밍 모델. 🌱 스프링 없이 의존성 주입하기 - 생성자를 통한 의존성 주입 Tire tire = new KoreaTire(); Car car = new Car(tire); 프로그래밍에서 의존 관계는 new로 표현된다. 주입 - 외부에서라는 뜻을 내포하고 있는 단어이며, 예를 들어 외부에서 생상된 타이어를 자동차에 창작하는 작업이 주입이다. 생성자를 통한 의존성 주입을 할 경우, 확정성이 좋아진다. 예를 들어, Car는 Tire 인터페이스를 구현한 어떠한 객..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

06. 스프링이 사랑한 디자인 패턴

🌱 오늘의 주제 : 스프링이 사랑한 디자인 패턴 🌱 어댑터 패턴(Adapter Pattern) 서로 다른 두 인터페이스 사이에 통신이 가능하게 하는 것. 예를 들어, 데이터베이스 공통의 인터페이스인 ODBC 또는 JDBC를 이용해 다양한 데이터베이스 시스템을 단일한 인터페이스로 조작할 수 있게 하는 것. 개방 폐쇄 원칙 (OCP)를 활용한 패턴. "호출당하는 족의 메서드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴" 🌱 프록시 패턴(Proxy Pattern) 프록시는 대리자, 대변인이라는 뜻을 가진 단어이다. 대리자는 실제 서비스와 같은 이름의 메서드를 구현한다. 이때 인터페이스를 사용한다. 대리자는 실제 서비스에 대한 참조 변수를 갖는다.(합성) 대리자는 실제 서비스의 같은 이..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

05. 객체 지향 설계 5원칙 - SOLID

🌱 오늘의 주제 : 객체 지향 설계 5원칙 - SOLID 🌱 SOLID SRP(single responsibility principle) : 단일 책임 원칙 OCP(open closed principle) : 개방 폐쇄 원칙 LSP(liskov substitution principle) : 리스코프 치환 원칙 ISP(interface segregation principle) : 인터페이스 분리 원칙 DIP(dependency inversion principle) : 의존 역전 원칙 🌱 SRP - 단일 책임 원칙 " 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다." - 로버트 C.마틴 단일 책임 원칙은 역할(책임)을 분리하는 것이다. (클래스, 속성, 메서드, 패키지, 모듈, 컴포넌트, 프레임..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

04. 자바가 확장한 객체 지향 (2)

🌱 오늘의 주제 : 04. 자바가 확장한 객체 지향 (2) 🌱 instanceof 연산자 instanceof 연산자는 만들어진 객체가 특정 클래스의 인스턴스인지 물어보는 연산자이다. 상속 관계뿐만 아니라 인터페이스의 구현 관계에서도 동일하게 적용된다. 객체_참조_변수 instanceof 클래스명 🌱 interface 키워드와 impelemnts 키워드 인터페이스는 public 추상 메서드와 public 정적 상수만 가질 수 있다. 메서드에 public과 abstract, 속성에 public과 static, final을 붙이지 않아도 자동으로 자바가 붙여준다. interface Speakable { (public static final )double PI = 3.1415; (public static) fi..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

04. 자바가 확장한 객체 지향 (1)

🌱 오늘의 주제 : 04. 자바가 확장한 객체 지향 (1) 🌱 abstract 키워드 - 추상 메서드와 추상 클래스 추상 메서드는 선언부는 있는데, 구현부가 없는 메서드를 말한다. 추상 클래스는 인스턴스, 즉 객체를 만들 수 없다. new를 사용할 수 없다. 추상 메서드는 하위 클래스에게 메서드의 구현을 강제한다. 오버라이딩 강제. 추상 메서드를 포함하는 클래스는 반드시 추상 클래스여야 한다. 🌱 생성자 반환값이 없고 클래스명과 같은 이름을 가진 메서드를 객체를 생성하는 메서드라고 해서 객체 생성자 메서드라고 한다. 즉, 생성자이다. 개발자가 아무런 생성자도 만들지 않으면 자바는 인자가 없는 기본 생성자를 만들어 준다. 인자가 있는 생성자를 하나라도 만든다면 자바는 기본 생성자를 만들어 주지 않는다. 🌱..

Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해

03. 다형성: 사용편의성

🌱 오늘의 주제 : 다형성: 사용편의성 🌱 오버라이딩? 오버로딩? 오버라이딩 - 재정의 : 상위클래스의 메서드와 같은 메서드 이름, 같은 인자 리스트 오버로딩 - 중복정의 : 같은 메서드 이름, 다른 인자 리스트 상위 클래스 타입의 객체 참조 변수를 사용하더라고 하위 클래스에서 오버라이딩(재정의) 한 메서드가 호출된다. 🌱 캡슐화: 정보 은닉 private - 본인만 접근 가능 [default] - 같은 패키지 내의 클래스에서 접근 가능 proteced - 상속 / 같은 패키지 내의 클래스에서 접근 가능 public - 모두가 접근 가능 상속을 받지 않았다면 객체 멤버는 객체를 생성한 후 객체 참조 변수를 이용해 접근해야 한다. 정적 멤버는 클래스명.정적멤버 형식으로 점근하는 것을 권장한다. 🌱 참조 변..

요가하는 개발자
'Spring/Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해' 카테고리의 글 목록