본문 바로가기

Web

(23)
Request, Response 간단 개념정리 응답은 서버에서 클라이언트로 뿌려줌? 배운곳 https://medium.com/webeveloper/http-%EC%9A%94%EC%B2%AD%EA%B3%BC-%EC%9D%91%EB%8B%B5-2209bc82f239 HTTP 요청과 응답 서론 medium.com
스프링 트랜잭션 비즈니스에서는 쪼개질 수 없는 하나의 단위 작업을 말할 때 '트랜잭션(Transaction)'이라는 용어를 사용한다. 사전적인 의미로 트랜잭션은 '거래'라는 뜻을 가지지만, 현실적으로는 '한 번에 이루어지는 작업의 단위'를 트랜잭션으로 간주한다. '트랜잭션으로 관리한다' 혹은 '트랜잭션으로 묶는다'는 ㅍ현은 프로그래밍에서는 'AND' 연산과 유사하다. 영소계층에서 '출금'과 '입금'은 각각 데이터베이스와 연결을 맺고 처리하는데 하나의 트랜잭션으로 처리해야 할 경우에는 한쪽이 잘못되는 경우에 이미 성공한 작업까지 다시 원상태로 복구되어야 한다. 스프링은 이러한 트랜잭션 처리를 간단히 XML 설정을 이용하거나, 어노테이션 처리만으로 할 수 있다. 데이터베이스 설계와 트랜잭션 데이터베이스의 정규화가 잘 되어있..
AOP '관점 지향 프로그래밍' '관점' 이라는 용어는 개발자들에게는 '관심사(concern)'라는 말로 통용된다. '관심사'는 개발 시 필요한 고민이나 염두에 두어야 하는 일이라고 생각할 수 있는데, 코드를 작성하면서 염두에 두는 일들은 주로 다음과 같다. 파라미터가 올바르게 들어왔을까? 이 작업을 하는 사용자가 적절한 권한을 가진 사용자인가? 이 작업에서 발생할 수 있는 모든 예외는 어떻게 처리해야 하는가? 위와 같은 고민들은 '핵심로직'은 아니지만, 코드를 온전하게 만들기 위해서 필요한 고민들인데 전통적인 방식에서는 개발자가 반복적으로 이러한 고민을 코드에 반영하게 된다. AOP가 추구하는 것은 '관심사의 분리(separate concerns)'이다. AOP는 개발자가 염두에 두어야 하는 일들은 별도의 '..
Rest 필요한 데이터만 전송한다. @RestController REST방식에서 가장 먼저 기억해야 하는 점은 서버에서 전송하는 것이 순수한 데이터라는 점이다. 기본의 컨트롤러에서 Model에 데이터를 담아서 JSP 등과 같은 뷰로 전달하는 방식이 아니므로 기존의 Controller와는 조금 다르게 동작한다. @RestController 이전에는 @Controller와 메서드 선언부에 @ResponseBody를 이용해서 동일한 결과를 만들 수 있다. 단순 문자열 반환 @RestController는 jsp와 달리 순수한 데이터를 반환하는 형태이므로 다양한 포맷의 데이터를 전송할 수 있다. 주로 일반 문자열이나 JSON, XML등을 사용한다. 객체의 반환 객체를 반환하는 작업은 JSON이나 XML을 이용한다. Res..
스프링 (Spring) 특징 POJO 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 관점 지향 프로그래밍 AOP(Aspect-Oriented_Programming) 지원 편리한 MVC 구조 WAS의 종속적이지 않은 개발 환경 POJO 기반의 구성 코드를 개발할 때 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않다는 것을 의미함. 개발자는 가장 일반적인 형태로 코드를 작성하고 실행할 수 있기 때문에 생산성에서도 유리하고, 코드에 대한 테스트 작업 역시 좀 더 유연하게 할 수 있다는 장점이 생긴다. 의존성 주입과 스프링 의존성이란는 것은 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미한다. 하나의 객체가 다른 객체의 상태에 따라 영향을 받는 것을 의미한다. 주입은 말 그대로 외부..
MVC 패턴 모델1 구조 JSP를 이용한 단순한 모델. 웹 브라우저의 요청을 JSP가 직접 처리한다. 모델 2 구조 웹 브라우저의 요청을 하나의 서블릿이 받는다. 서블릿은 요청을 알맞게 처리한 후 그 결과를 보여줄 jsp 페이지로 포워딩한다. 서블릿이 로직을 처리한다. MVC 패턴 MVC(Model-View-Controller) 패턴은 웹 개발자라면 반드시 알아야 하는 패턴이다. 모델 : 비지니스 영역의 로직을 처리. 뷰 : 비지니스 여역에 대한 프레젠테이션 뷰( 즉, 사용자가 보게 될 화면)을 담당한다. 컨트롤러 : 사용자의 입력 처리와 흐름 제어를 담당한다. 핵심 비즈니스 로직을 처리하는 모델과 결과 화면을 보여주는 뷰를 분리한다. 어플리케이션의 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중된다. 유지보수가 ..
서블릿 (Servlet) , 필터 서블릿이란 JSP 표준이 나오기 전 자바로 동적인 페이지를 만들기 위한 서버 프로그래밍. 개발 과정 서블릿 규약에 따라 자바 코드 작성 자바 코드를 컴파일해서 클래스 파일을 생성 /WEB-INF/classes 폴더에 클래스 파일을 패키지에 알맞게 위치 web.xml 파일에 서블릿 클래스를 설정 톰켓 실행 웹 브라우저 확인 서블릿 구현 java public class NowServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/ht..
Jsp 중급 데이타 베이스 생성 및 유저생성 권한 create database chap14; create user 'jspexam' @'localhost' identified by 'jsppw'; grant all privileges on chap14.* to 'jspexam'@'localhost'; create database 데이타베이스명; create user '계정명' @'호스트' identified by '비밀번호'; grant 권한목록 on 데이터베이스.대상 to '계정명'@'호스트'; Class.forName() MySQL : com.mysql.jdbc.Driver 오라클 : oracle.jdbc.driver.OracleDriver Ms SQL 서버 : com.microsoft.sqlserver.jdbc..