ObjectMapper? Jackson 라이브러리 클래스 중 하나인 ObjectMapper 통해 JSON → Object(역직렬화), Object → JSON(직렬화)를 간단하게 파싱할 수 있는 라이브러리 입니다. readValue() test.json { "name" : "john", "age" : 20 } json → Object 비직렬화 코드 People people = objectMapper.readValue(new File("static/test.json"), People.class); people의 각 값을 찍어보면 잘 출력됩니다. System.out.println(people.getName() + ", " + people.getAge()); // john, 20 그런데 말입니다.. Peopl..
System.getProperties로 프로퍼티 값 받기 기존에는 이런식으로 넘겨주면, $ java -jar XXX.jar arg1 arg2 arg3 자바에서는 이렇게 받으면 된다. public class Main { public static void main(String[] args) { String arg1 = args[0]; String arg2 = args[1]; String arg3 = args[2]; } } 문제는 도커 이미지를 만들다가 ENV 변수로 실행시키게끔 하려는데 자꾸 ENV가 안담겨나가서 다른 방법을 찾아보다가 발견했다. 바로.. System.getProperty("key") 파라미터 넘겨줄 때는, -D옵션으로 -D{key}={value} 이런식으로 넘겨주면 된다. $ java -D..
해시를 통한 암호화 Hash(해시)란? 단방향 암호화 기법으로 해시 함수를 통해 암호화 된 문자열을 만드는 것을 의미합니다. ex) SHA-256, Bcrypt .. 사용자의 패스워드는 평문으로 저장하는 것은 위험한 일입니다. 그렇기 때문에 보통 해시 함수를 통해 암호화를 진행하게 되는데, 이도 그렇게 안전한 것은 아닙니다. 공격자가 모든 평문을 해시화하여 대조를 하여 패스워드를 알아낼 수도 있다는 뜻입니다. 해커는 무한대로 공격을 한다면 어떤 암호화를 해도 패스워드를 알아낼 수 있을 것입니다. 하지만 해커들이 무한대로 공격을 할 수 있을까요? X 해독할 때 조금이라도 더 암호화를 해서 해커들에게 단 몇초라도 지연시킬 수 있다면 해커들에게는 치명적인 시간이 될 수 있습니다. 더보기 암호를 해독하는데 걸리..
자바 프로젝트를 intellij에서 jar 파일 만드는 법 간단한 프로젝트 생성을 했습니다. hello world!를 출력하는 메인 클래스입니다. cmd + :로 프로젝트 구조 설정으로 들어갑니다. (Mac OS 단축키) Artifacts -> + -> JAR -> From modules ... 클릭! Main Class를 지정해줍니다. 이때 패키지명까지 다 적어줘야 합니다! 이후에 Apply -> OK를 눌러줍니다. 이제 intellij 상단바에서 build -> artifacts를 클릭해줍니다. build를 클릭해줍니다. out/artifacts/[project명]에 jar 파일이 생성된 것을 확인할 수 있습니다. jar 파일 실행하기 올바르게 실행된 것을 확인할 수 있습니다!
서론 알고리즘 문제 풀다가, 2개 이상의 여러 개 공백을 하나의 공백으로 바꿔야 하는 문제가 있었는데, 이 참에 정리하려고 합니다. 문제 "내용에서 2개 이상의 공백을 하나의 공백으로 바꿔 주세요." 원하는 결과 "내용에서 2개 이상의 공백을 하나의 공백으로 바꿔 주세요." 정규표현식 String str = "내용에서 2개 이상의 공백을 하나의 공백으로 바꿔 주세요."; String result = str.replaceAll("\\s+", " "); System.out.print(result); 실행 결과 앞으로 정규 표현식에 대해서 잘 알고있으면 좋을 것 같습니다. 감사합니다.