Java 52

[Spring] HiddenHttpMethodFilter로 GET,POST를 DELETE,PUT등 으로 받기_Spring Boot설정

브라우저 VIEW단에서 서버로 데이터를 전송할 경우 FORM으로 GET 또는 POST로 전송이 가능하다. FORM에서 전송된 GET 또는 POST 타입은 서버에서 @GetMapping 또는 @PostMapping으로 받을 수 있지만 나머지 DELETE, PUT, PATCH 타입들은 FORM에서 지원하지 않기 떄문에 기존에는 ajax로 타입을 명시하여 전달한 후 @DeleteMapping, @PutMapping, @PatchMapping으로 받았었다. 하지만 HiddenHttpMethodFilter를 사용하면 기존 FORM 방식으로 전송하고 서버에서는 원하는 타입으로 받을 수 있다. 즉, VIEW단에서 기존 FORM의 GET 또는 POST로 전송한 후 서버에서 PUT, DELETE, PATCH등으로 타입을..

Spring 2021.08.26

[Algorithm] 프로그래머스_멀쩡한 사각형_Summer/Winter Coding(2019)

코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운..

Algorithm 2021.08.25

[Algorithm] 프로그래머스_카카오프렌즈 컬러링북_2017 카카오코드 예선

코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 카카오프렌즈 컬러링북 설명 출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.) 그림에 몇 개의 영역이 있는지와 가장 큰 영역의 넓이는 얼마인지 계산하는 프로그램을 작성해보자. 위의 그..

Algorithm 2021.08.24

[Algorithm] 프로그래머스_오픈채팅방_2019 KAKAO BLIND RECRUITMENT

설명 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다. 예를 들어, ..

Algorithm 2021.08.23

[JPA] Spring Data JPA를 이용한 페이징 처리

JPA 페이징 관련하여 다양한기능들이나 동작원리, 개념 등 정리가 잘 된 글들이 많다. 추후 참고 해보자. 여기선 예시를 통해 기본으로 간단하게 JPA로 페이징 처리를 해보자. 아래 설명할 예시는 아래의 가이드문서를 참고했습니다. https://docs.spring.io/spring-data/jpa/docs/2.3.1.RELEASE/reference/html/#reference Spring Data JPA - Reference Documentation Example 108. Using @Transactional at query methods @Transactional(readOnly = true) public interface UserRepository extends JpaRepository { List..

JPA 2021.08.19

[Spring] 유효성 검사(Validating Form)

사용해 보면서 테스트한 내용을 간단하게 정리한 글입니다. validation이란 어떤 데이터의 값이 유효한지, 타당한지 확인하는 것을 의미한다. 즉 데이터 필드들의 값 존재 여부, 글자의 제한 등 해당 양식에 유효한지 판별하기 위해서 사용한다. 1. 의존성 주입 gradle implementation 'org.springframework.boot:spring-boot-starter-validation' maven org.springframework.boot spring-boot-starter-validation 2. 데이터 컨테이너 클래스 유효성을 검사가 필요한 데이터가 담긴 클래스를 선택한다. 아래 Board클래스는 id, title, contet를 프로퍼티로 사용하고 있고 유효성 검사가 필요하다고 가..

Spring 2021.08.18

[JAVA] 비트연산 정리

* 이진 비트 연산을 수행해서 결과를 정수로 반환하는 연산자 (정수형만 사용 가능) 1. AND 연산 (&) - 둘다 '1'일 경우 '1'로 변환 A 1 0 1 0 B 1 0 1 1 Result 1 0 1 0 int A = 10; int B = 11; System.out.println("A : " + Integer.toBinaryString(A)); System.out.println("B : " + Integer.toBinaryString(B)); System.out.println("A & B : "+Integer.toBinaryString(A & B)); 2. OR 연산 ( | ) - 하나만 '1'일 경우 '1'로 변환 A 1 0 1 0 B 1 0 1 1 Result 1 0 1 1 int A = 10;..

Java 2021.08.17

[JAVA] 진법 변환 정리 (n진수 <-> 10진수)

1. 10진수 -> n진수 * 변환하기 전에 확인! 10진수를 제외한 나머지 진수는 String으로 받아야 한다. -> int는 전부 10진수로 인식 2진수, 8진수, 16진수는 아래와 같이 Binary, Octal, Hex함수가 존재한다. 물론 toString(int n, int radix)로 사용해도 무관하다. 테스트 코드 public class Solution { public static void main(String[] args) { // 테스트를 위한 10진수 값 = 25 int a = 25; System.out.println("10진수 -> 2진수"); System.out.println(Integer.toBinaryString(a)); System.out.println(Integer.toStr..

Java 2021.08.15

[Algorithm] 프로그래머스_실패율_2019 KAKAO BLIND RECRUITMENT

설명 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 ..

Algorithm 2021.08.15

[Algorithm] 프로그래머스_약수의 개수와 덧셈

설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ left ≤ right ≤ 1,000 예시 입력 / 출력 left right result 13 17 43 24 27 52 풀이 과정 1. 2중 for문으로 바깥은 i는 left부터 right까지 반복문으로 돌리고 안으로는 1부터 i값까지 1씩 증가 시키면서 나머지 값이 '0'일 경우(약수 성립) HashMap에 해당 i를 key로 getOrDefault을 사용하여 1씩 증가 시켜준다. 2. 위의 반복문을 모두 나오면 HashMap의 key는 left부터 ..

Algorithm 2021.08.13