본문 바로가기
728x90
반응형

전체 글232

[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.
[ advanced rest client ] Rest API 방식 기능을 테스트하는 도구 advanced rest client - 크롬 확장 프로그램 chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=ko Advanced REST client The web developers helper program to create and test custom HTTP requests. chrome.google.com 2020. 8. 12.
[WEB] HTTP Request Method (HTTP 요청 메소드) HTTP Request Method 클라이언트가 웹 서버에게 사용자 요청의 목적/종류를 알리는 방법 - 서버에 임무를 부여하여 주어진 메소드에 해당하는 일을 함 - 클라이언트에서 리퀘스트 전달 시, 메소드에 따른 지시를 내릴 수 있음 - 일반 웹브라우저의 요청 방식은 get, post 2가지만 지원 -> REST API는 용도에 맞게 CRUD 분류해서 사용 HTTP 메소드의 종류 메소드 설명 GET 리소스 취득 POST 엔티티 바디 전송 PUT 파일 전송 HEAD 메시지 헤더 취득 DELETE 파일 삭제 OPTIONS 서포트하고 있는 메소드 문의 TRACE 경로 조사 CONNECT 프록시에 터널링 요구 GET - Resource 획득 GET 메소드는 서버에게 리퀘스트 URI로 식별된 리소스를 가져올 수 .. 2020. 8. 12.
[WEB] HTTP 상태 코드 (HTTP Status Code) HTTP 응답 상태 코드란? 특정 HTTP 요청이 성공적으로 완료되었는지 알려주는 코드로 5개의 응답 그룹으로 나누어진다. 상태코드 클래스 클래스 설명 1xx Informational 리퀘스트를 받아들여 처리중(조건부 응답) 2xx Success 리퀘스트를 정상적으로 처리함 3xx Redirection 리퀘스트를 완료하기 위해 추가 동작이 필요함 4xx Client Error 클라이언트 오류 (문법 오류) 5xx Server Error 서버 오류 1xx (조건부 응답) 요청을 받았으며 작업을 계속한다. 이 상태의 상태 코드는 상태-라인과 선택적 헤더(컴퓨터에서 출력될 때 각 페이지 맨 윗부분에 자동으로 붙는 부분)만을 포함하는 임시의 응답을 나타내고 빈 라인에 의해서 종결된다. HTTP/1.0이래로 어떤.. 2020. 8. 12.
[Algorithm] 버블 정렬(Bubble Sort) 버블 정렬(Bubble Sort) 바로 옆에 있는 값과 비교해서 더 작은 값을 앞으로 보내는 정렬법(반복) - 선택 정렬과 같이 직관적인 알고리즘 - 가장 비효율적인 정렬 알고리즘 - 데이터의 개수가 조금만 많아지더라도 아주 많은 연산을 해야하기때문에 시간이 오래걸림 예제) 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요. 1 10 5 8 7 6 4 3 2 9 1) 한번의 반복이 끝나면 가장 큰 값이 뒤로 보내지는 정렬법 1 10 5 8 7 6 4 3 2 9 1 5 10 8 7 6 4 3 2 9 1 5 8 10 7 6 4 3 2 9 1 5 8 7 10 6 4 3 2 9 1 5 8 7 6 10 4 3 2 9 1 5 8 7 6 4 10 3 2 9 1 5 8 7 6 4 3 10 2 9 1 5 8 7.. 2020. 8. 10.
728x90
반응형