객체지향 프로그래밍 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 객체지향에 대한 자세한 내용은 다음 포스팅을 참고하자. https://sasca37.tistory.com/133?category=1223547 [JAVA] 객체 지향 프로그래밍2 객체 지향 OOP is A PIE Abstraction (추상화) : 현실 객체를 추상화해서 클래스를 구성 Polymorphism(다형성) : 하나의 객체를 여러 가지 타입으로 참조 (메..
스프링 의미 문맥에 따라 다르다. 스프링 DI 컨테이너 기술 스프링 프레임워크 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계 스프링 생태계 스프링은 특정한 하나가 아니라 여러가지 기술의 집합이라고 볼 수 있다. 스프링 부트 : 여러 프레임워크를 편리하게 도와주는 툴 스프링 데이터 : DB의 CRUD를 편리하게 도와줌, Spring Data JPA를 제일 많이 사용 스프링 세션 : 서버에서 연결 정보를 관리하는 세션을 도와주는 기능 스프링 시큐리티 : 보안 기능 스프링 Rest Docs : 문서 관련 기능 스프링 배치 : 여러 작업을 묶어서 일괄 처리하는 기능 스프링 클라우드 : 클라우드 기술을 도와주는 기능 ※ https://spring.io/projects 이 외에도 여러 다양한 기능..
AOP란? Spring은 Spring Triangle이라고 부르는 세 가지 개념을 제공해준다. 각각 IoC, AOP, PSA를 일컫는다. AOP는 Aspect Oriented Programming의 약자로 '관점 지향적인 프로그래밍'이라는 의미이다. AOP의 핵심 개념은 관심사의 분리이다. (Tracing, Exception, Transction 등) AOP 사용 시 코드 분산, 코드 꼬임 등을 처리하여 간결한 구조를 만들 수 있다. ※ PSA (Portable Service Abstraction) : 추상화 계층을 사용하여 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공해주는 것 AOP 기능 @Aspect : 흩어진 관심사를 모듈화, Aspect 클래스임을 정의 Target : Aspect를 적용하..
VIEW 우선순위 Request 요청이 오면 컨트롤러에 해당 정보가 있는지 먼저 찾고 없으면 static/index.html 파일을 찾는다. localhost:8080 요청이 왔을 경우 Controller에 매핑이 되어 있으므로 template/home.html을 찾아간다. (타임리프 기준) @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } VIEW FORM 태그 이름 등록 form 태그 : 값을 전송하기 위한 태그 , method="post" 포스트 방식으로 전달 input type="text" : 텍스트 입력, name="name" 서버에 전달할 키값("name"), pl..
스프링 빈이란? Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라는 용어로 부른다. 우리가 new 연산자로 어떤 객체를 생성했을 때 그 객체는 빈이 아니다. ApplicationContext.getBean()으로 얻어질 수 있는 객체는 빈이다. 즉, Spring에서의 빈은 ApplicationContext가 만들어서 그 안에 담고있는 객체를 의미한다. ※ 스프링은 스프링 컨테이넌에 빈을 등록할 때 기본으로 싱글톤으로 등록한다. (하나의 객체만 등록하여 관리) 설정으로 싱글톤이 아니게 설정할 수 있지만, 대부분 싱글톤 사용 스프링이 처음 실행될 때 스프링 컨테이너가 생성되고 스프링 컨테이너에서 @Controller, @Service, @Repository 등 어노테이션이 붙은 객체를 생..
정적 컨텐츠 단순 파일 그대로를 전달 Hello hello MVC와 템플릿 엔진(Jsp, Thymeleaf 등) HTML에 템플릿 엔진을 통해 동적 페이지 구성 API JSON 데이터만 클라이언트에 전달하여 구성 (서버 간 통신 등 ), @ResponsBody 사용하여 객체를 반환하면 JSON으로 변환됨 @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } //ResponseBody //http body 부분에 직접 넣어주겠다를 명시하는 애노테이션 // 문자면 String 값,..