전체 글
-
[프로그래머스] 이중 우선순위 큐 Java 풀이문제풀이/프로그래머스 2021. 12. 27. 01:23
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 2. 입력 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나..
-
[Log4j] Zero Day 취약점기타 2021. 12. 26. 22:59
1. Log4j Log4j는 자바 진영에서 사용되는 Log를 남기는 프레임워크입니다. Log4j는 자바로 구현된 시스템이라면 많이 사용하는 프레임워크로 이번 취약점이 광범위한 보안 이슈인 이유입니다. 2. Log4j 취약점 이번 취약점은 알리바바에 의해서 12월 9일 처음 공개되었으며 Log4j 취약점은 Zero Day 취약점이라고 불려집니다. Zero Day 취약점은 해당 취약점에 대한 패치가 발표되기 전에 해당 취약점으로 공격이 이루어지는 것을 말합니다. 결국 Zero Day는 개발자 또는 관리자가 대응할 시간이 제로 이기 때문에 Zero Day 취약점이라고 불리는 것입니다. CVSS 취약점 등급은 10점 만점에 10점일 정도로 심각한 취약점이라고 합니다. 또한 이번 취약점은 2.0 beta-9 버전..
-
[JPA] Dirty Checking(변경 감지)프로그래밍/JPA 2021. 12. 24. 03:36
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. JPA Dirty Checking JPA에는 수정과 관련된 메소드가 존재하지 않습니다. 그럼 JPA를 이용해서는 데이터를 수정할 수 없는 것일까요? 당연히 JPA도 DB 데이터를 수정할 수 있습니다. 다만 수정 메소드가 존재하지 않을 뿐입니다. JPA를 사용하여 데이터를 수정하려면 Entity를 조회하여 조회된 Entity 데이터를 변경만 하면 데이터 베이스에 자동으로 반영이 되도록 하는 기능을 바로 Dirty Checking이라고 합니다. 2. Dirty Checking 동작 방법 Entity 객체의 데이터만 변경하면 어떻게 DB에 수정된 데이터가 반영되는지 설..
-
[프로그래머스] 하노이의 탑 Java 풀이문제풀이/프로그래머스 2021. 12. 23. 13:47
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입니다. 한 번에 하나의 원판만 옮길 수 있습니다. 큰 원판이 작은 원판 위에 있어서는 안됩니다. 하노이 탑의 세 개의 기둥을 왼쪽 부터 1번, 2번, 3번이라고 하겠습니다. 1번에는 n개의 원판이 있고 이 n개의 ..
-
[Jenkins] Log4j 취약점 확인CI-CD 2021. 12. 22. 14:12
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Jenkins Log4j 사용 확인 이번 Log4j 취약점이 공식 확인된 후 개인 서버에 설치된 프로그램 중 Jenkins의 확인이 필요하다는 것을 인지하게 되어 이번 글을 작성 하게 되었습니다. Jenkins는 java로 구현된 시스템입니다. 그래서 Log4j를 사용할 가능성이 있기에 확인이 필요합니다. 다행히 Jenkins의 공식 사이트에서 Jenkins의 경우 Log4j를 사용하지 않는 내장 Jetty 웹 애플리케이션 컨테이너를 사용하고 발표 하였습니다. 하지만 추가적인 문제는 Jenkins에서 다운로드하였던 Plugin이 Log4j 프레임워크를 사용할 수도..
-
[프로그래머스] 풍선 터트리기 Java 풀이문제풀이/프로그래머스 2021. 12. 21. 13:52
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 일렬로 나열된 n개의 풍선이 있습니다. 모든 풍선에는 서로 다른 숫자가 써져 있습니다. 당신은 다음 과정을 반복하면서 풍선들을 단 1개만 남을 때까지 계속 터트리려고 합니다. 임의의 인접한 두 풍선을 고른 뒤, 두 풍선 중 하나를 터트립니다. 터진 풍선으로 인해 풍선들 사이에 빈 공간이 생겼다면, 빈 공간이 없도록 풍선들을 중앙으로 밀착시킵니다. 여기서 조건이 있습니다. 인접한 두 풍선 중에서 번호가 더 작은 풍선을 터트리는 행위는 최대 1번만 할 수 있습니다. 즉, 어떤 시점에서 인접한 두 풍선 중 번호가 더 작은 풍선을 터트렸다면, 그 이후에는 인접한 두..
-
[Intellij] Gradle 버전 업그레이드, 다운그레이드Intellij 2021. 12. 20. 23:52
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Build Error intellij에서 신규 모듈을 생성 후 plugin으로 Springboot를 추가하고 Build를 하니 위와 같은 Build Error가 발생하였습니다. Error 내용을 보면 알 수 있지만 Spring Boot plugin을 사용하기 위해서는 Gradle의 버전이 6.8.x, 6.9.x, 또는 7.x 이상이어야 한다고 한다. 하지만 현재 6.5 버전의 Gradle을 사용하고 있어 Build시 Error가 발생한 것입니다. 그래서 Gradle 버전 업그레이드가 필요하게 되었습니다. 2. Gradle 버전 확인 Error 내용에서도 확인이 가..
-
[Map Struct] Ambiguous Mapping Error프로그래밍/Map Struct 2021. 12. 19. 16:35
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Ambiguous Mapping Error Entity를 DTO로 변경하거나 또는 DTO를 Entity로 변경하기 위해 Map Struct를 사용합니다. Map Struct는 Object 뿐만 아니라 Collection에 포함된 Element또한 변경이 가능 합니다. Collection의 Element를 변환하고자 할때는 변환 처리를 하는 작업을 Object를 변환하는 메소드를 호출하여 변환 작업을 진행 합니다. 위 이밎 처럼 Collection Element 변환의 경우 Object 변환 메소드(entityToDTO, dtoToEntity)를 호출하여 Colle..