본문 바로가기

분류 전체보기270

REST, RestController, ResponseEntity, AJAX # REST API 특정 URI를 통해 사용자가 원하는 정보를 제공하는 방식. REST방식으로 제공되는 외부연결 URI를 REST API. REST 방식의 서비스 제공이 가능한 것을 Restful 하다고 표현. @RestController @RestController = @Controller + @ResponseBody 클래스 상단에 @RestController 어노테이션을 선언하면 메소드마다 @ResponseBody를 붙여주지 않아도 된다. # 단순 문자열 리턴 1 2 3 4 @RequestMapping("/hello") public String sayHello(){ return "Hello World"; } cs # JSON 리턴 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 .. 2019. 4. 11.
[프로그래머스] 스킬트리 (level 2) 프로그래머스 스킬트리 스킬트리 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함.. 2019. 4. 1.
[Effective Java] try with resources try with resources를 사용해라 Effective Java를 보다가 신기한 부분을 발견했다. 나는 보통 try ~ catch, try ~ catch ~ finally 등 단순히 예외처리를 할 때 사용한다. 라는게 내가 아는 전부였다. 자바 라이브러리에는 close메소드를 호출해 직접 닫아줘야 하는 자원이 많다. 대표적으로 InputStream, OutputStream, java.sql.Connection 등이 있다. 대부분이 try-finally를 사용해 close메소드를 사용하곤 한다. static String firstLineOfFile(String path)throws IOException { BufferedReader br = new BufferedReader(new FileReade.. 2019. 3. 29.
[프로그래머스] 점프와 순간이동 (level 2) java 프로그래머스 점프와 순간이동 점프와 순간 이동 문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용.. 2019. 3. 29.
자바 valueOf() 자바 valueOf Wrapper 클래스들(Integer, Character, Double, String 등)은 모두 valueOf메소드를 가지고 있다. valueOf 메소드를 통한 객체와 new 키워드를 통한 객체에는 차이점이 있다. 가능하면 valueOf메소드를 사용해야 한다. 간단하게 보면 Integer a = 10; Integer b = new Integer(10); Integer c = Integer.valueOf(10); 위 값을 서로 비교하면 어떻게 될까? a와 c는 같지만 b와는 다르다는 값이 나오게된다. Wrapper 클래스는 내부적으로 캐시가 존재하기 때문이다. 오토박싱과 valueOf 메소드는 이 캐시를 통해 객체를 가져온다. 반면, new는 캐시와 상관없이 새로운 객체를 생성한다. .. 2019. 3. 28.
[프로그래머스] 포켓몬 (level 2) java 프로그래머스 포켓몬 level2포켓몬문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. ​ 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3.. 2019. 3. 26.