목록java (13)
archive

브라우저(클라이언트)에서 request가 들어오면, 가장 먼저 DispatcherServlet으로 전달된다. DispatcherServlet에서는 이를 HandlerMapping에 전달한다. HandlerMapping에서는 요청을 처리하기 위해 적합한 Controller를 선택한다. (@Controller) HandlerAdapter에서는 해당 Controller에서 적합한 메서드를 선택한다. (@RequestMapping) DispatcherServlet은 해당 Controller에 요청을 보낸다. Controller의 메서드가 수행되고 난 후 model과 view(jsp)를 반환한다. DispatcherServlet에서 ViewResolver에 전달하여, 처리결과를 출력할 view를 선택한 후, re..
스프링을 입문을 위한 자바 객체 지향의 원리와 이해 를 읽고 정리한 글입니다. 도구를 올바르게 사용하는 방법이 있는 것처럼 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계하는 5원칙이 바로 SOLID 이다. 응집도(Cohension)는 높이고, 결합도(Coupling)는 낮추라는 고전 원칙을 객체 지향의 관점에서 재정립한 것이다. (결합도 - 모듈(클래스)간의 상호의존도, 응집도 - 하나의 모듈 내부에 존재하는 구성요소들의 기능적 관련성) SOLID는 객체지향의 4대 특성을 발판으로 하고 있으며 디자인 패턴의 뼈대가 되고, 스프링 프레임워크의 근간이기도 하다. 이를 잘 녹여낸 소프트웨어는 상대적으로 이해하기 쉽고, 리팩터링과 유지보수가 용이하다. SRP(Single Responsibility..

네이버 쇼핑 검색 API에 대한 정보는 아래 링크에서 확인할 수 있다. 검색 API 쇼핑 검색 개발가이드 NAVER Developers - 검색 API 쇼핑 검색 개발가이드 developers.naver.com 먼저, 해당 API를 이용하기 위해서 신청을 해야 한다. 이용신청이 완료되면 client_id와 secrete_key가 발급된다. 자바 애플리케이션에서 사용해보기에 앞서서 ARC로 response를 받아보겠다. 발급받은 두 가지 값을 header에 넣어주고 검색어는 parameter로 넘겨줘야 한다. parameter에는 검색어 이외에도 정렬 기준 등을 지정할 수 있다. (사이트 참고) 참고로 한글 검색어를 넣는 경우에는 인코딩 문제로 결과가 정상적으로 나오지 않는다. (Postman에서는 정상작..
스프링을 입문을 위한 자바 객체 지향의 원리와 이해 를 읽고 정리한 글입니다. abstract키워드 - 추상메서드와 추상클래스 추상메서드(Abstract Method)는 선언부만 있고 구현부가 없는 메서드를 말한다. 추상메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스(Abstract Class)로 선언해야 한다. 추상 클래스는 인스턴스를 생성할 수 없으며, 하위 클래스는 반드시 추상 메서드를 오버라이딩 해야한다. 생성자 클래스의 인스턴스, 즉 객체를 만들 때는 new 키워드를 사용한다. 반환값이 없고 클래스명과 같은 이름을 가진 메서드를 객체 생성자 메서드, 줄여서 생성자라고 한다. 컴파일 과정에서 인자가 없는 기본생성자가 자동으로 생성된다. 필요시에 인자를 가지는 생성자를 작성할 수 있다. 이..

스프링을 입문을 위한 자바 객체 지향의 원리와 이해 를 읽고 정리한 글입니다. 저자는 스프링 프레임워크는 OOP프레임워크라는 개념을 제품화 한 것이고, OOP개념을 채택한 제품 중 자바를 선택했으므로 1. OOP개념 2. Java의 문법 3. Java가 OOP를 구현한 방식 을 배워야 한다고 말한다 2장에서는 변수/메서드가 어떻게 메모리에 저장되고 사용되는지에 대해 다룬다. 자바 프로그램의 개발과 구동 JDK(Java Development Kit) : JVM용 소프트웨어 개발 도구 JRE(Java Runtime Environment) : JVM용 OS JVM(Java Virtual Machine) : 가상의 컴퓨터 즉, JDK를 이용해서 개발된 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에서 구동..
Person테이블에 데이터를 CRUD하는 API를 작성하였다. Person.java @Setter @Getter @NoArgsConstructor @Entity public class Person extends Timestamped { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column(nullable = false) private String name; @Column(nullable = false) private int age; @Column(nullable = false) private String job; public Person(String name, int age, String job) { this.name =..