전체 글

전체 글

    REST란? REST API 와 RESTful API

    REST란? REST는 REpresentational State Transfer의 약자다. 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고받는 것을 의미한다. 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식이다. 기본적으로 웹 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용 가능함. REST의 구체적인 개념 HTTP URI를 통해 자원을 명시하고, HTTP Method(Get, Post, Put, Delete)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. REST는 자원 기반 구조(ROA: Resource Oriented Architecture) 설계 중심에 Resource가 있..

    백준 12018. Yonsei TOTO(JAVA)

    백준 12018. Yonsei TOTO(JAVA)

    ○ 문제 요약 성준이가 현재 가진 마일리지로 최대 수강 신청할 수 있는 강의가 몇 개인지 구하자. ○ 문제 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new Stri..

    [Java]스트림(stream)(3/3)

    최종 연산 - forEach() Stream stream = Stream.of("하나","둘","셋","넷"); stream.forEach(System.out::println); - 조건 검사 findFirst(), findAny() IntStream intStream1 = IntStream.of(9,7,8,6,5,3,4); IntStream intStream2 = IntStream.of(9,7,8,6,5,3,4); OptionalInt result1 = intStream1.sorted().findFirst(); // 정렬 후 첫 번째 요소 반환 System.out.println(result1.getAsInt()); // 3 OptionalInt result2 = intStream2.sorted().fi..

    [Java]스트림(stream)(2/3)

    ▷ 스트림의 연산 중간 연산 : 연산 결과가 스트림인 연산. 스트림에 연속해서 중간 연산할 수 있다. 최종 연산 : 연산 결과가 스트림이 아닌 연산. 스트림의 요소를 소모하므로 단 한 번만 가능하다. 중간 연산 1. 스트림 자르기 - skip(), limit() 2. 스트림의 요소 걸러내기 - filter(), distinct() 3. 정렬 - sorted() 4. 변환 - map(), flatMap() 5. 조회 - peek() - 스트림 자르기 - skip(), limit() * skip()은 요소를 건너뛰고, limit()는 요소를 제한한다. IntStream intStream = IntStream.rangeClosed(1,10); intStream.skip(3).limit(5).forEach(Sy..

    [Java]스트림(stream)(1/3)

    많은 수의 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기 위해 for문과 Iterator를 이용해서 코드를 작성해왔다. 이런 방법은 코드도 길고 알아보기도 어렵다. 또한 재사용성도 떨어진다. 이러한 문제점들을 해결하기 위해 만들어진 '스트림'에 대해 알아보자! ▷ 스트림의 특징 ○ 스트림은 데이터 소스를 변경하지 않는다. → 스트림은 데이터 소스로부터 데이터를 읽기만 할 뿐, 데이터 소스를 변경하지 않는다는 차이가 있다. 필요하다면 정렬된 결과를 컬렉션이나 배열에 담아서 반환할 수 있다. ○ 스트림은 일회용이다. → 스트림은 Iterator처럼 일회용이다. 그렇기 때문에 한 번 사용하면 다시 사용할 수 없다. 필요하다면 스트림을 재생성해야 한다. ○ 스트림은 작업을 내부 반복으로..

    [Java] 람다식

    람다식이란? 메서드를 하나의 식으로 표현한 것이다. 람다식은 함수를 간략하고 명확하게 표현하게 해준다. 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, '익명 함수'라고도 한다. 람다식 작성하기 // 두 값 중에서 큰 값을 반환하는 메서드 int max(int a, int b){ return a > b ? a : b; } // 아래와 같이 표현할 수 있다. (int a, int b){ return a > b ? a : b; } 반환값이 있는 메서드의 경우, return문 대신 식으로 대신 할 수 있다. 식의 연산 결과가 자동적으로 반환값이 된다. 이때는 문장이 아닌 식이므로 끝에 ';'을 붙이지 않는다. (int a, int b) -> {return a > b ? a : b;} -----> (i..

    [JavaScript] 타입

    타입 자바스크립트의 기본 타입은 크게 원시 타입과 객체 타입으로 구분할 수 있다. 원시 타입(primitive type)은 1. 숫자(number) 2. 문자열(string) 3. 불리언(boolean) 4. 심볼(symbol) : ECMAScript 6부터 제공됨 5. undefined 객체 타입(object type)은 6. 객체(object) - 숫자 자바 스크립트는 다른 언어와 달리 정수와 실수를 구분하지 않고, 모든 수를 실수 하나로 표현한다. 또한, 매우 큰 수나 매우 작은 수를 표현할 때는 e 표기법을 사용할 수 있다. var firstNum = 10; // 소수점을 사용하지 않은 표현 var secondNum = 10.00; // 소수점을 사용한 표현 var thirdNum = 10e6; ..

    [spring] Spring MVC 구조

    스프링 MVC는 '모델 1'과 '모델 2'가 있다. 이번 포스팅에서는 '모델 2'에 대해 간단하게 쓰려고 한다. 모델 2 방식은 쉽게 말해서 '로직과 화면을 분리'하는 스타일의 개발 방식이다. 전체적인 구조를 보면 아래와 같다. 위 그림에서 좀 더 세세하게 보면 아래와 같이 나타낼 수 있다. 1. 사용자의 요청은 DispatcherServlet을 통해서 처리한다. 프로젝트의 web.xml을 보면 모든 요청을 DispatcherServlet이 받도록 처리하고 있다. HandlerMapping은 요청의 처리를 담당하는 컨트롤러를 찾기 위해서 존재한다. 2. 3. HandlerMapping 인터페이스를 구현한 여러 객체들 중 RequestMappingHandlerMapping 같은 경우는 개발자가 @Reque..

    [JavaScript] 자바 스크립트 시작

    자바 스크립트 문법 var x = 10; var result = x + 5; 자바 스크립트는 대소문자를 구분한다. 변수나 함수 이름, 예약어 등을 작성할 때는 대소문자 구별에 유의해야 한다. var javascript = 10; // 변수 javascript와 JavaScript는 서로 다른 두 개의 변수로 인식됨. var JavaScript = 20; Var Script = 30; // 변수의 선언은 var 키워드로만 할 수 있으면 Var는 동작하지 않음. - 리터럴 리터럴은 직접 표현되는 값 그 자체를 의미한다. 12 // 숫자 리터럴 "JavaScript" // 문자열 리터럴 '안녕하세요' // 문자열 리터럴 true // 불리언 리터럴 - 식별자 식별자는 변수나 함수의 이름을 작성할 때 사용하는 ..

    [Hi Planner] @Builder 어노테이션 ( + 트러블 슈팅)

    테스트 코드를 작성하면서 VO 클래스를 기본 생성자로 만들어주고 setter 메서드로 필요한 속성에 값을 넣어서 사용했다. 하지만 프로젝트를 리뷰해주시는 선배님의 조언으로 @Builder 어노테이션을 사용해보는 게 어떻겠냐는 말에 @Builder 어노테이션을 사용한 후기와 그 과정에서 발생한 에러를 어떻게 해결했는지 기록하기 위해 포스팅을 하게 되었다. ▷ Message.java @Data @Builder public class Message { private int mesNo; private String mesCon; private Date createdAt; private String sendId; private String recvId; private String isShow; } 기본적으로 @Da..