WEB (22) 썸네일형 리스트형 자바스크립트의 기본문법 JavaScript의 자료형 - 모든 프로그래밍 언어에는 내장된 자료구조가 존재한다 - JavaScript는 변수를 선언할때 자료형을 정하지않는다. 값을 대입하는 순간 동적으로 변수의 자료형이 정해진다 기초자료형 String: 문자형으로 문자열를 뜻한다 Number: 숫자형으로 정수,실수형,NaN 값이 있다 Boolean: 논리형으로 true, false값이 있다 Null : 빈 값 Undefined: 값을 할당하지 않은 변수가 가지는 값 객제자료형 - 주소를 가지는 참조타입이다 객체: 여러 데이터를 담을수 있다. Json구조의 키와 쌍으로 이루어져있다 배열: 여러 데이터로 담을수 있다. 서로 다른 자료형의 데이터를 담을 수 있다. 변수 선언 - ES6 이전에는 var를 사용했다 - ES6 이후로는 co.. controller 만들기 화면 흐름 구성하기 메소드 설계 설계 규칙 - 프로젝트 구현 기능에 따라 메소드를 만든다 - URL 주소만 봐도 어떤 요청인지 알 수 있어야 한다 - redirect : 새로운 주소 (url)로 이동하는것 등록페이지 • 폼태그를 사용하여 입력필드를 만들고 게시물 등록을 요청할수 있다 • 게시물 등록을 요청하면 입력데이터가 파라미터로 전달된다 화면 요청 - localhost:8080/주소 호출 응답 결과 확인하기 - Request Response HTTP 메시지 보기 Html 코드 보기 소스탭 선택 > jsp 파일 선택 > 데이터 출력 부분 찾기 service 만들기 Service란 무엇일까? - 리파지토리에서 받은 데이터 처리결과를 가공한다. - 고객의 요구사항을 반영한다. Service 동작 순서 1. Controller가 Service를 호출한다. 2. 서비스가 리파지토리에게 데이터 처리를 요청한다. 3. 경우에따라 특수한 비즈니스로직을 수행한다. 4. 리파지토리에서 받은 처리결과를 가공하여 컨트롤러에게 전달한다. 클래스 의존관계 • 서비스 로직을 고민중인 상황으로 가정하여, 서비스를 변경하기 편리한 구조로 설계 • 인터페이스와 구현체로 구조를 구성하고, 상황에따라 구현클래스를 변경함 • 서비스를 사용하는 쪽은 인터페이스를 이용 • 이와같은 구조로 설계하면, 서비스 코드가 변경이되어도 서비스를 사용하는 쪽의 코드는 변경이 없음 인퍼페이스 • 데이터 등록, 조회,.. repository 만들기 게시물관리 예제 사용자 요구사항 정의 • 게시물 등록,조회,수정,삭제 기능을 구현해야함 • 다루어야할 데이터는 게시물로 글번호, 글제목, 내용 필드로 구성됨 • 아직 데이터 저장소가 선정되지 않음 모델 컴포넌트 개발 • 게시물 도메인과 리포지토리 개발 • 게시물 서비스 개발 도메인 DTO클래스 • 도메인은 모델객체를 부르는 포괄적인 용어이며, dto는 데이터 전달 객체를 부르는 용어이다. • 컴포넌트간에 데이터를 전달하는 모델객체이다. • 테이블 구조를 반영해야하고, 기본키 필드가 필수적으로 존재해야한다. • 테이블의 PK는 글번호(no) 필드를 사용한다. 리스트와 맵 * 리스트와 맵은 대량으로 데이터를 저장할때 사용하는 자료구조이다. • key: 기초자료형의 Wrapper의 클래스 또는 String을 .. 프로젝트 구성 프로젝트 계층 구조 • 컨트롤러: 사용자 Request 처리한다 • 서비스: 핵심 비즈니스 로직을 처리한다 • 리포지토리: 데이터베이스에 접근하여 데이터를 조회하여 도메인에 저장한다. 또는 데이터베이스에 접근하여 데이터를 추가,수정,삭제를 처리한다. • 도메인: 컨트롤러, 서비스 사이에서 데이터를 전달하는 역할 ( DTO ) 예) 게시물, 회원, 주문 등 클래스 네이밍규칙 • xxxController: 사용자 Request를 처리하는 클래스 • xxxSerivce : 비즈니스 로직을 담당하는 클래스 • xxxRepository: 데이터베이스에 접근하는 클래스 • xxxDTO: Data Transfer Object. 데이터를 전달하기 위해 사용하는 객체 프로젝트 설계 1. 사용자 요구사항 분석 2. 프로젝.. 컨트롤러의 리턴타입과 예외처리 컨트롤러의 리턴타입 - 컨트롤러가 사용자에게 응답하는 데이터 형태이다. - 가장 많이 사용하는 타입으로는 String타입, 객체타입, ResponseEntity타입이 있다. 리턴타입 종류 - String 타입 : 결과를 화면으로 응답할 경우에 사용한다. - 객체타입 : 결과를 복합적인 데이터로 응답할 경우에 사용한다. - ResponseEntity 타입 : 상태코드와 데이터를 직접 정의하여 응답할 경우에 사용한다. String 타입 - 결과를 화면으로 보여줄 때 사용한다 - JSP(뷰) 파일의 경로를 반환한다. 객체 타입 - 결과를 복합적인 데이터로 응답할 때 사용한다. - 순수한 데이터만 보여주고자 할때 사용한다. - 객체를 JSON데이터로 변환하여 반환한다. - @ResponseBody 어노테이션과 .. 컨트롤러의 파라미터 수집 파라미터(Parameter) - 사용자가 서비스를 요청할때 함께 전달하는 값이다 - 필요한 파라미터를 URL뒤에 “?no=1”과 같은 형태로 추가해서 호출한다 파라미터 수집과 변환 - 파라미터는 타입에 따라 기초자료형 또는 참조자료형으로 자동으로 변환된다 예시 “?no=1” -> int no “?name=둘리&age=10” -> String name, int age 파라미터 어노테이션 종류 @RequestParam : 파라미터를 기초자료형 또는 문자열로 변환한다 @RequestBody : 파라미터를 참조자료형으로 변환한다 예시 public String test01 ( @RequestParam int no ) public String test02 ( @RequestBody Person person ) @R.. Controller-GET, POST, DELETE, PUT HTTP 프로토콜 • HTTP(Hypertext Transfer Protocol)의 약자 • 인터넷상에서 데이터를 주고 받기 위한 서버와 클라이언트 사이의 규약 HTTP 동작방식 • 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response) • 클라이언트: URL를 사용해서 서버에 데이터를 요청 • 서버: 클라이언트의 요청을 받아서, 해석하고 응답 Controller • 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용한다. • GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리한다. @Controller • 해당 클래스의 인스턴스를 스프링의 빈으로 등록하고, 컨트롤러로 사용한다. @RequestMapping • 서비스 요청주소(URL).. MVC 패턴 MVC패턴의 프로젝트 - 스프링 프레임워크에서 제공하는 프로젝트의 종류 중 하나이다. - Model-View-Controller의 약자로 mvc패턴이라 불린다. - 데이터모델과 화면(뷰) 그리고 이를 제어하는 컨트롤러로 구성된다. - 사용자 인터페이스와 비즈니스 로직을 분리하여 개발하는 방식이다. Model - 데이터 처리와 관련된 클래스이다. - 데이터모델, 데이터베이스, 서비스 로직이 이에 해당한다. - Ex. service, repository, vo, dto View - 화면처리를 하는 파일이다. - ex. html, jsp Controller - 사용자 request를 가장먼저 받는 클래스이다. - Model과 View를 연결하는 코드이다. MVC 패턴 흐름 1. 사용자가 브라우저 화면에서 데이.. 의존성 주입(DI)과 어노테이션 의존성 주입이란? - 클래스 내부에서 필요한 객체를 직접 생성하지 않고, 외부에서 필요한 객체를 주입한다. - 의존관계를 외부에서 주입 해주는것 같다고 해서 의존성 주입(DI)라고 한다. 스프링 컨테이너가 빈을 생성하는 과정 1.컴포넌트를 스캔한다. 2.컨테이너에 인스턴스를 생성하고 저장한다 3.객체간의 의존관계를 파악하여 객체를 주입한다 애노테이션이란? • 아래와 같이 @기호로 시작하는 것을 애노테이션라고 한다. • Java가 제공하거나, 사용자가 정의해서 사용할 수 있다. 애노테이션 기능 • 어플리케이션 실행시 특정기능을 실행한다 • 컴파일러가 코드의 문법 에러를 체크한다 자주 사용하는 어노테이션 스프링 관련 어노테이션 설명 위치 @Component 컴포넌트가 붙은 클래스를 찾으면 스프링 컨테이너에 .. 이전 1 2 3 다음