전체 글 10

[Spring] Spring MVC (1)

MVC Model View Controller 의 약자로, 각각 서로 다른 파일에서 역할을 나누어 데이터를 주고받을 수 있도록 하는 디자인 패턴 M (Model) Model 은 View 가 렌더링 하는데 필요한 데이터를 말한다 DBMS(DataBase Manage Service) 에 의해 관리되고, SQL 을 통해 구현한다 Service(BO) 와 Repository(DAO) 로 나뉘어 Database 에서 데이터를 관리한다 V (View) View 는 웹 애플리케이션에서 실제로 보여지는 부분으로 Model 을 이용해 렌더링 하게 된다 Java는 JSP 를 통해 구현한다 Model 이 가지고 있는 정보를 저장해서는 안된다 C (Controller) View 에 받은 요청을 가공해서 Model 에 전달하거..

[Spring] JSP View 연동

webapp > WEB-INF 안에 jsp 파일을 저장하면 WEB-INF 폴더 내부 파일들은 외부에서 바로 접근이 불가하다 따라서 Controller 메서드에서 해당 jsp 를 잡아주게 해서 이를 기반으로 jsp 내용을 response body 에 담아 전송하게 만든다 웹페이지에서 바로 jsp 를 여는 것이 아니라 Controller 를 통해서 한단계 더 거쳐 전송을 함으로서 보안이 더 뛰어나다는 장점을 가진다 @Controller public class HelloController { @RequestMapping("/lesson01/ex02/1") public String hello() { return "lesson01/ex02"; } } @RequestMapping 으로 url mapping 한 상태..

웹개발/spring 2022.08.11

[Spring] MyBatis 연동

MyBatis SQL Mapper Framework Query 기반 웹 애플리케이션을 만들 때 JDBC를 직접 이용할 경우 반복적인 코드, 로직 코드와 query 분리 어려움 등의 문제점이 많다. 따라서 MyBatis 를 이용하면 SQL query 를 xml 파일에 작성하여 가독성을 높이고, 원하는 객체 형태로 데이터를 변환해서 쉽게 가져올 수 있다. MyBatis 연동 1. src/main/java/com. ... / *Application.java 에 다음 코드 추가하기 package com. /* 입력 */ ; import java.io.IOException; import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactor..

웹개발/spring 2022.08.04

[Spring] 객체 지향 설계와 Spring

Spring 이란? Java 언어를 기반으로 한 Java Web Framework 로, 다양한 어플리케이션을 만들기 위한 프로그래밍 틀이라고 할 수 있다. 프로젝트에 많이 쓰이는 기술들인 JSP, MyBatis, JPA 등을 더 쉽게 사용하기 위해 만들어졌으며, 비즈니스 로직을 더 간단히 해준다. Framework 란? 자주 쓰일만한 기능들을 모아놓은 클래스들의 집합이라 할 수 있다. 기본적인 설계나 필요한 라이브러리를 제공함으로써 개발자가 기능을 쉽게 구현하게 도와준다. Spring Framework 여러가지 기술이 합쳐져 만들어진 프레임워크로, 웹 기술, 데이터 접근, 기술 통합, 테스트가 모두 지원 된다. Spring 핵심 기술인 spring DI container, AOP 와 같은 핵심 기술이 있..

웹개발/spring 2022.08.04

[Spring] Annotation 종류

요청을 받는 Annotation @Controller 요청이 들어오는 스프링 빈 웹 서버를 만드는 프로그램의 가장 앞쪽의 request 전달 받고, response 만들어서 전송하는 곳 Dispatcher Servlet 에서 @Controller 들을 스캔 servlet 과 spring 비교 public class HelloController extends HttpServlet { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) { ... } } @Controller public class HelloController { ... } @RequestMapping("/ path ") @Controller 스캔한 후 @..

웹개발/spring 2022.08.03

[Gof Design Pattern] Design Patterns

객체지향 소프트웨어를 설계할 때에는 지금 당장 갖고 있는 문제를 해결하는 것 뿐만 아니라 나중에 생길 수 있는 문제나 추가된 요구사항들도 수용할 수 있도록 일반적이고 포괄적이어야 한다. 이를 위해 SOLID 원칙 등 객체지향적 소프트웨어 설계 방법론을 따라 개발하기 위해 노력한다. 디자인 패턴이란 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할 때 참조할 수 있는 전형적인 해결 방식을 말한다. 디자인 패턴을 통해 설계 문제, 해결 방법, 적용 시기, 결과 등을 알 수 있다. Gof Design Pattern [Gof Design Pattern] 은 Gof(Gang of four) 라는 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides..

Java/Design Pattern 2022.07.26

SOLID 원칙

SRP (Single Responsibility Principle) 단일 책임의 원칙 There should never be more than one reanon for a class to change 클래스는 단 한개의 책임을 가져야 하며, 클래스를 변경해야 하는 이유는 단 하나여야 한다. 특징 클래스 별로 책임 영역이 확실해지기 때문에 한 책임의 변경에서 다른 책임의 변경으로의 연쇄작용에서 자유로울 수 있다. 책임을 적절히 분배함으로써 코드의 가독성이 향상되고, 유지보수가 용이하다 적용 방법 혼재된 각각의 책임을 개별 클래스로 분할하여 클래스 당 하나의 책임만을 맡도록 한다. 이때 책임만 분리하는 것이 아니라 분리된 두 클래스 간의 관계의 복잡도를 줄이도록 설계해야 한다. field, method 를..

Java 2022.07.21

HTTP 프로토콜

HTTP (Hypertext Transfer Protocol) 서버와 클라이언트가 인터넷 상에서 데이터를 주고받기 위한 프로토콜 HTTP 작동 방식 서버 / 클라이언트 모델을 따른다. 장점 불특정 다수를 대상으로 하는 서비스에 적합 클라이언트와 서버가 계속 연결된 상태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답 처리 가능 단점 연결을 끊어버리기 때문에 클라이언트의 이전 상황을 알 수 없음(= 무상태 (Stateless)) 정보를 유지하기 위해 Cookie 같은 기술이 등장 URL (Uniform Resource Locator) 인터넷 상의 자원의 위치 특정 웹 서버의 특정 파일에 접근하기 위한 경로 또는 주소 요청 메서드 : 서버에게 요청의 종류를 알려주기 위해 사용..

웹 서버 & WAS(Web Application Server)

개요 웹 브라우저는 URL 주소에 해당하는 Web Server 에 연결하고, 해당 주소에서 볼 수 있는 내용을 읽어들여 보여준다. 웹 서버는 웹 브라우저의 요청을 받아 HTML 문서나 Object 를 반환한다. WAS는 웹 클라이언트의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가진다. 1. 웹 서버 웹 서버란? 웹 서버(Web Server)는 웹 서버 소프트웨어가 동작하는 컴퓨터를 말한다. 클라이언트(Client) 가 요청하는 HTML 문서나 각종 리소스(Resource) 를 전달한다. 웹 브라우저나 웹 크롤러가 요청하는 리소스는 정적(static)인 데이터 이거나 동적인 결과가 될 수 있다. 웹 서버 소프트웨어 종류 Apache, Nginx, Microsoft IIS 2. WAS(Web A..