목록API (9)
삶 가운데 남긴 기록 AACII.TISTORY.COM
서비스(비즈니스 로직) 서비스 레이어는 controller와 persistence 사이에서 비즈니스 로직을 수행하는 역할입니다. service 패키지를 만들어 아래 예제를 작성합니다. package ds.co.kr.todo.service; import org.springframework.stereotype.Service; @Service public class TodoService { public String testService() { return "Test Service"; } } @Service 어노테이션은 비즈니스 로직을 수행하는 컴포넌트이며 서비스 레이어임을 알려주는 어노테이션입니다. 스테레오 타입 어노테이션으로 내부에 @Component를 포함하고 있습니다. @RestController 에도 ..
REST 제약 조건 Client - Server 구조를 따릅니다. stateless 클라이언트가 서버에 요청을 보낼 때 이전 요청의 영향을 받지 않습니다. 그래서 요청을 보낼 때 로그인(인증) 정보를 항상 함께 보내야 합니다. http는 기본적으로 staeless 구조입니다. Cacheable 캐시가 가능한지 명시할 수 있어야 합니다. http는 헤더에 cache-control 에서 캐시 여부를 명시할 수 있습니다. Uniform Interface 리소스를 URI를 통한 인터페이스로 관리합니다. Layered System 인증서버, 캐싱 서버, 로드 밸런서 등 여러 레이어로 된 서버들을 거치지만 클라이언트는 서버 사이의 레이어의 존재 유무를 알지 못합니다. Code on demand 클라이언트는 서버에 ..
REST Client REST API를 이용하여 서버가 리소스를 제공하는 경우 클라이언트 측에서 리소스를 받기 위해 REST Client API가 필요합니다. 그중 하나인 OkHttp 라이브러리를 이용해 JAVA용 REST Client를 구현하는 예제를 소개합니다. OkHttp OkHttp는 Square 에서 만든 간편하게 REST API나 http기반의 요청 응답을 처리할 수 있는 라이브러리입니다. 오픈소스로 공개된 소프트웨어입니다. https://github.com/square/okhttp GitHub - square/okhttp: Square’s meticulous HTTP client for the JVM, Android, and GraalVM. Square’s meticulous HTTP cli..
DecimalFormat 숫자 데이터를 원하는 형식으로 표현하기 위한 클래스 입니다. import java.text.DecimalFormat; public class DeciamlFormatEx { public static void main(String[] args) { double num = 1234567.89; DecimalFormat df = new DecimalFormat("0");//10진수, 빈자리는 0으로 채움 System.out.println(df.format(num)); df = new DecimalFormat("0.0");//소수점 표현 System.out.println(df.format(num)); df = new DecimalFormat("0000000000.00000"); Syst..
Date 클래스 현재 날짜 출력을 위한 클래스입니다. 날짜를 표기하는 포멧을 지정하려면 SimpleDateFormat 클래스를 이용합니다. import java.text.SimpleDateFormat; import java.util.Date; public class DateEx { public static void main(String[] args) { Date now = new Date(); String strNow1 = now.toString(); System.out.println(strNow1); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String strNow2 = sdf.format(now); System.out.p..
자바 프로그램은 운영체제가 아니라 JVM에서 실행됩니다. 그래서 System 클래스를 통해 운영체제의 일부 기능을 제공하고 있습니다. exit() 프로세스를 강제 종료한는 메소드 입니다. public class ExitEx { public static void main(String[] args) { for(int i = 0; i
Objects Object 클래스와 이름이 유사한 Objects 클래스는 static으로 객체를 다루기 위한 여러가지 메서드들을 지원합니다. 객체 비교 compare() import java.util.Comparator; import java.util.Objects; public class CompareExample { public static void main(String[] args) { Student s1 = new Student(1); Student s2 = new Student(1); Student s3 = new Student(2); int result = Objects.compare(s1, s2, new StudentComparator()); System.out.println(result);..
자바 API documents http://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com Object class 클래스는 extends를 생략하면 암시적으로 Object 클래스를 상속받습니다. Object는 자바의 최상위 부모 클래스입니다. equals() 객체가 동등한 지 비교합니다. public class Member { public String id; public Member(String id) { this.id = id; } @Override public boolean equals(Object obj) { //인수가 Member Type인지 확인 if(obj instanceof Member) { //Member type..
GetLastError() 윈도우즈 시스템 함수들은 에러가 났을 때 리턴 값이 대개 NULL 이기 때문에 에러 원인을 알 수 없습니다. 이럴 때 사용하는 함수가 GetLastError 함수를 사용하면 에러코드를 획득할 수 있습니다. 이 에러코드는 MSDN을 참고하면 무슨 에러인지 알 수 있게 됩니다. #include #include #include int _tmain(void) { HANDLE hFile = CreateFile(_T("TEST.DAT"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { _tprintf( _T("error co..