본문 바로가기

java

[프로그래머스] 문자열을 정수로 바꾸기 문제 설명 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한사항 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 0으로 시작하지 않습니다. 입출력 예 예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 나의 풀이 class Solution { public int solution(String s) { return Integer.parseInt(s); } } Integer.parseInt(String s) 문자열을 숫자로 변환시킴 pareseInt 함수는 In.. 더보기
[Java] DTO와 VO의 차이 DTO (Data Transfer Object) 순수하게 데이터를 담아 계층간으로 전달하는 객체이다. 로직을 갖고 있지 않은 순수한 데이터 객체이며 메서드로는 getter/setter 만을 갖는다. 여기서 getter/setter 이외에 다른 로직이 필요 없는 이유를 좀 더 자세히 살펴보자면, 만약 DTO가 데이터 전달 만을 위한 객체라고 한다면 완전히 데이터 '전달' 용도로만 사용하기 때문에 getter/setter로직만이 필요하지 다른 로직이 필요하지 않은 것이다. //getter와setter 메서드 만을 가진다 public class UserDTO { private String name; private String id; public String getName() { return name; } pu.. 더보기
[XSS] 크로스사이트 스크립팅 공격 예방 네이버에서 개발되었던 lucy-xss-filter 라는 라이브러리 사용 장점 XML 설정 만으로 XSS 방어가 가능해짐 비지니스 레이어의 코드 수정이 발생하지 않음 개발자가 XSS 방어를 신경 쓰지 않아도 됨 XSS 방어가 누락되지 않음 설정 파일 하나로 XSS 방어절차가 파악됨 gradle 에 추가 compile 'com.navercorp.lucy:lucy-xss-servlet:2.0.1' web.xml > filter mapping선언 xssEscapeServletFilter com.navercorp.lucy.security.xss.servletfilter.XssEscapeServletFilter xssEscapeServletFilter /* rule 추가는 /resources/lucy-xss-ser.. 더보기
[Java] SHA-256 암호화 방법 SHA(Secure Hash Algorithm, 안전한 해시 알고리즘) 함수들은 서로 관련된 암호학적 해시 함수들의 모음입니다. 간단하게 요약하면 패스워드는 사용자 본인만 알아야 하므로 암호화 할때도 복호화가 불가능한 단방향 방식으로 암호화 해야한다. 즉, 시스템관리자나 개발자라도 해당 시스템을 이용하는 개인의 비번을 복호화해서 알아낼수 없도록 조치해야 한다는 말이다. 이때 사용하는 암호화 알고리즘이 SHA-2(Secure Hash Algorithm 2)이다. 해시 함수가 출력하는 암축된 문장을 다이제스트(Digest) 라고 하는데, SHA-2가 생성하는 다이제스트 출력 길이는 224, 256, 384, 512 bit로 다양하다.이때 256bit의 출력 길이를 갖는 SHA-2을 SHA-256이라고 부른다.. 더보기
[프로그래머스] 완주하지 못한 선수 (Java / 해쉬) 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 입출력 설명 예제 #1 leo는 참여자 명단에는 있지만, 완주자 명단에는 없.. 더보기
[프로그래머스] 폰켓몬 (Java / 해쉬) 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a.. 더보기