본문 바로가기

Spring26

MVC패턴에 대해 알아보자. (Spring MVC) MVC패턴에 대해 알아보자. (Spring MVC) 서블릿 에 대해서도 조금 알게되었으니 이제 MVC 패턴에 대해 알아보도록 하자! MVC 패턴 사용 이유 MVC 패턴을 적용 안한 JSP를 예를 들어보자. JSP 페이지 안에는 자바 코드가 들어갈 수 있다. 따라서 비즈니스 로직을 넣을 수 있고, Connection 객체를 이용한 DB 연동도 할 수 있다. 또한 JSP는 클라이언트에게 View를 렌더링하는 역할도 수행한다. 여기까지만 봐도 JSP는 너무나 많은 역할을 가지고 있다. 이렇게 JSP가 많은 역할을 하게 되면 나중에 유지보수에도 굉장히 힘들어진다. JSP 페이지 안에 비즈니스 로직과 DB 연동 코드 모두 들어가 있으면 일단 코드 라인수도 많을 것이고, 비즈니스 로직을 수정하는데 여러가지 코드가 .. 2022. 7. 17.
서블릿에 대해 알아보자. 서블릿에 대해 알아보자. 먼저 MVC 패턴을 알아보기 전에 서블릿이 무엇인지 간단하게 짚고 넘어가겠습니다. 서블릿 서블릿이란 무엇인지 희미하게만 알고있어서 stackoverflow에 검색을 해보았는데 역시나 좋은 글들이 많았다. (사실 이 글만 봐서는 이해하기 어려울수도..) 서블릿이란 단순히 특정 HTTP 요청에 대한 응답하는 클래스이다. 기본적으로 서블릿은 웹 애플리케이션에 사용된다. 즉, 서블릿은 동적인 웹페이지를 제공할 수 있도록 도와주는 자바 기반의 자바 웹 프로그래밍 기술이다. 만약에 웹 애플리케이션 서버를 직접 구현한다고 가정해보자. - HTTP 요청 메시지와 HTTP 응답 메시지를 잠깐 살펴보면. HTTP 요청 메시지 POST /save HTTP/1.1 Host: localhost:8080.. 2022. 7. 14.
생성자 주입을 권장하는 이유 생성자 주입을 권장하는 이유 스프링 강의를 보다보면 필드 주입이나 수정자 주입을 사용하기 보다는 생성자 주입 사용을 더 권장한다고 들었다. 그래서 개인 프로젝트 할 때 생성자 주입을 사용하고는 있는데 "왜 생성자 주입을 권장하는 걸까" 궁금증이 생겼다. 이 참에 다양한 의존관계 주입 방법 중에서도 굳이 생성자 주입을 권장하는 이유를 알아보자! 구조 수정자 주입 수정자 주입(Setter Injection)은 이름 그대로 setter 메서드를 사용하여 객체를 주입하는 의존관계 주입이다. 선택적이며 변경 가능성이 있는 의존관계에 사용한다. 선택적: UserService가 스프링 빈에 등록이 안되어도 선택적으로 사용할 수 있다. (이 때는 @Autowired(required = false 옵션을 주어야 한다.).. 2022. 7. 9.
SOLID (IoC, DI) SOLID SOLID란 로버트 마틴(클린코드의 저자)이 정의한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙이다. 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 적용할 수 있다. 위 설계대로 구현을 해보았다. 설계의 내용을 간략히 설명하면, 연주 서비스 클래스에서 기타의 종류를 하나 선택해서 연주를 생성하는 아주 간단한 설계이다. 패키지 구성은 위와 같이 구성하였고, 모든 소스코드는 github에서 확인할 수 있다. SRP (단일 책임 원칙) SRP는 Single Responsibility Principle 의 약자로, 한 클래스는 하나의 책임만 가져야 한다. OCP (개방-폐쇄 원칙) OCP는 Open/Closed Principle 의 약자로, 소프트웨어 요소는 확장에는 열려 있.. 2022. 4. 17.
download of template 'org.springframework.templates.mvc' failed 금일 코드로 배우는 스프링 웹 프로젝트 책으로 실습을 진행하려던 중에 정말 멘붕에 빠져서 짧게 글을 올려봅니다. 원래는 intellij를 자주 사용하다가 Spring MVC 프로젝트는 intellij에서 설정하기가 좀 까다로워서 eclipse를 사용하기로 결정했습니다. 실무에서도 STS4를 사용하고 있어서 겸사겸사 저도 STS를 사용하기로 했습니다. STS3와 STS4의 차이점도 잘 몰랐었는데 기존에 STS3를 사용했을 때는 Spring Legacy Project로 프로젝트를 생성해서 Spring MVC 템플릿으로 생성이 가능했었는데, STS4는 그런 것이 없습니다. 즉, STS4는 스프링 부트를 위한 툴이고 스프링 부트는 JSP 사용을 권장하지 않습니다. 스프링 부트는 뷰 템플릿을 SPA 프레임워크나 .. 2021. 12. 20.
Spring Boot + gradle + Oracle 11g + MyBatis 연동 Spring Boot + gradle + Oracle 11g + MyBatis 연동 먼저 SQL Developer 또는 CMD(sqlplus -> 환경변수 설정)로 System 계정으로 들어가 유저를 생성합니다. 모든 권한 부여도 해주고, 기본적으로 DB 포트번호가 8080으로 되어있을텐데 9090으로 변경해줍니다. //유저 생성 create user my_book IDENTIFIED BY my_book default tablespace users temporary tablespace temp; //권한 부여 grant connect, dba to my_book; //포트 번호 확인 select dbms_xdb.gethttpport() from dual; //8080 //포트 번호 변경 exec dbms.. 2021. 5. 31.