본문 바로가기
반응형

전체 글248

[Spring Boot] RESTful Service 강의 정리(2) / User Service API 구현 [User Service API 구현] 1) Domain Class 생성 package com.example.restfulwebservice.user; import lombok.AllArgsConstructor; import lombok.Data; import java.util.Date; @Data @AllArgsConstructor public class User { private Integer id; private String name; private Date joinDate; } 2) DAO + Service class 생성 (db연동을 하지 않을 것이기때문에 DAO 클래스가 딱히 필요없음) package com.example.restfulwebservice.user; import org.sprin.. 2020. 8. 24.
[Spring Boot] RESTful Service 강의 정리(1) Spring Boot Auto Configuration - DispatcherServletAutoConfiguration - ErrorMvcAutoConfiguration - HttpMessageConvertersAutoConfiguration -> JSON convert DispatcherServlet -> '/' - 클라이언트의 모든 요청을 한곳으로 받아서 처리 - 요청에 맞는 Handler로 요청을 전달 - Handler의 실행 결과를 Http Response 형태로 만들어서 반환 RestController - SpringBoot 에서는 별도의 xml파일 설정 없이 어노테이션으로 등록 - Spring4부터 @RestController 어노테이션 지원 - RsetController = Controll.. 2020. 8. 24.
[Spring] REST API 방식 / RESTful 시스템 REST (Representational State Transfer) HTTP 기반으로 필요한 자원에 쉽게 접근할 수 있도록 도와주는 아키텍처이다. HTTP에 존재하는 모든 자원에 고유한 URI를 부여하여 자원을 정의하고, 자원에 대한 주소를 지정하는 방법론을 의미한다. 이러한 REST 방식을 따른 시스템을 RESTful이라고 부른다. REST API의 구성 - 자원(RESOURCE) : URI - 행위(Verb) : HTTP METHOD - 표현(Representations) REST의 특징 - Uniform(유니폼 인터페이스) Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말한다. - Stateless(무상태성) 작업을.. 2020. 8. 19.
동적으로 갱신된 데이터에 대한 이벤트 설정 data-target="#modifyModal" - 일반적인 선택자에 대한 클릭 이벤트 부여 // 1) $(".timeline").click(function(){ }); // 2) $(".timeline").on("click",function(){ }); - 동적으로 갱신된 데이터에 대한 이벤트 설정 // 클릭이라는 이벤트를 선택자가 아닌 ".replyLi"에 부여 $(".timeline").on("click", ".replyLi", function(event){ }); 2020. 8. 19.
[JAVA] JVM(Java Virtual Machine) 자바 가상 머신 / Runtime Data Area "WORA (Write Once, Run Anywhere)" - Sun Microsystems 자바 코드를 컴파일해서 배포하면 어떤 플랫폼(운영체제+CPU 아키텍쳐)이든 다시 컴파일할 필요없이 실행할 수 있다. 단, 그 플랫폼에 맞는 JVM이 설치되어 있을 때! c/c++도 크로스 컴파일을 해서 배포하면 되는데 굳이 JVM이 필요할까? - 애초에 자바는 네트워크에 연결된 모든 디바이스에서 작동하는 것이 목적이었다. - 디바이스마다 운영체제나 하드웨어가 다르기때문에 플랫폼에 의존하지 않도록 자바 언어를 설계했다. JDK(Java Development Kit) - JRE + 개발 툴(java c) - 자바 11부터는 JDK 단위로 배포됨 JRE(Java Runtime Environment) - JVM + 핵.. 2020. 8. 15.
DTO vs VO vs Entity DTO Data Transfer Object (데이터 전송 객체) 계층(Layer)간 데이터 교환을 위해 사용하는 객체이다. 로직을 갖고 있지않은 순수한 데이터 객체이며, getter/setter 메소드만을 갖는다. Client Controller Service Respository VO Value Object(값 객체) 서로 다른 이름을 가진 VO의 인스턴스가 모든 속성 값이 같다면 같은 객체이다. (-> 전제 조건 equals()와 hashCode()를 오버라이딩 했을때) 객체의 불변성을 보장한다. 로직을 포함할 수 있다. Entity 실제 DB의 테이블과 매핑되는 클래스 Id로 구분되며 로직을 포함할 수 있다. DTO와 VO를 같은 의미로 생각할 수 있다. Entity를 DTO 대신 사용할 수는 있.. 2020. 8. 14.
[JAVA] 자바의 스트림(stream)과 파일 입출력 스트림(stream) 자바에서는 파일이나 콘솔의 입출력을 직접 다루지않고, 스트림이라는 흐름을 통해 다룬다. 스트림이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미한다. 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 한다. Java SE 8 버전부터 추가된 스트림 API와는 다른 개념임을 유의할 것! 스트림의 용도? 외부에 있는 리소스(파일,네트워크,메모리 등등)를 읽어오거나, 프로그래밍 리소스를 내보내는 경우에 사용 입력 스트림, 출력 스트림 : 작업의 방향 바이트 스트림, 문자 스트림 : 작업하는 데이터의 성격 입력 스트림, 바이트단위 작업 : InputStream (최상위 클래스) 출력 스트림, 바이트단위 작업 : OutputStream (.. 2020. 8. 14.
[JavaScript] Handlebars Template Engine Template Engine 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어로 프로그램 로직과 프레젠테이션 계층을 분리하기 위한 수단이다. Handlebar.js Handlebar.js(이하 핸들바)는 자바스크립트의 템플릿 엔진 중 하나로 Mustache를 기반으로 구현한 템플릿 인자(콧수염 모양의 {{}} bracket을 이용하여 data를 표현하는 것)를 이용하면 html 페이지에서 HTML+Bracket의 구성으로 디자이너와 개발자가 협업할 때 도움이 된다. Handlebars handlebarsjs.com 출처 : https://programmingsummaries.tistory.com/381 기본적인 바인딩 구조 사용자 정의 헬퍼 기본 제공 헬퍼 예제.. 2020. 8. 14.
객체를 리턴타입으로 받아 객체의 정보를 JSON타입으로 리턴시키고 싶을 때? 메소드가 호출될 때, 객체를 리턴타입으로 받아 객체의 정보를 json타입으로 리턴시키려고 한다면 두 가지의 조건이 필요하다. 1. jackson-databind 메이븐 라이브러리 필요 (json 데이터 작업시 필요한 기능 제공) 2. 별도의 어노테이션 필요 - 내보낼 때에는 @ResponseBody - 가져올 때에는 @RequestBody 2020. 8. 13.
[Java / Spring ] 어노테이션(@, annotation)의 정의와 종류 (계속 추가중 / 최종수정일:20200831) 어노테이션(@, annotation)이란? Annotation은 Java5부터 새롭게 추가된 문법요소이다. 사전적으로는 "주석"이라는 의미를 가지고 있으며, 자바 코드에 @를 이용해 주석처럼 달아 특수한 의미를 부여해준다. 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공하고, 코드에 정보를 추가하는 정형화된 방법이다. 어노테이션을 사용하면 코드가 깔끔해지고 재사용이 가능하다. ps. 자바 리플렉션 : 다른 언어에는 존재하지않는 특별한 기능으로, 컴파일 시간이 아닌 실행 시간에 동적으로 특정 클래스의 정보를 객체를 통해 분석 및 추출해내는 프로그래밍 기법 @SpringBootApplication @Configuration + @EnableAutoCo.. 2020. 8. 12.
[Spring] mybatis-config.xml (mybatis에 필요한 설정 정보) insert into tbl_board(BNO, TITLE, CONTENT, WRITER) values(seq_board_bno.nextval, #{title}, #{content}, #{writer}) 2020. 8. 12.
[JavaScript] JSON(JavaScript Object Notation) maven 라이브러리 사용 JSON (JavaScript Object Notation) 클라이언트와 서버간의 정보를 교환하기 위한 데이터 형태로, 속성과 값을 넣어 전달하고자 하는 객체를 JSON 형태로 Ajax를 통해 전송한다. ex) 시스템A와 시스템B가 협업을 하여 데이터를 교환할 때 사용하는 공통적인 데이터 문법이라고 볼 수 있다. 기본 사용법 (자세한 문법 : www.w3schools.com/js/js_json_intro.asp ) var obj = { "프로퍼티" : 값}; jackson-databind json, xml 응답을 편하게 할 수 있도록 도와주는 maven 라이브러리 pom.xml에 코드 작성 com.fasterxml.jackson.core jackson-databind 2.9.9 json 포맷의 데이터를 .. 2020. 8. 12.
반응형