전체 글 140

spring security

spring security를 사용하면서 동작 원리를 이해하고, 어떤 커스텀 인증 방식으로 사용할 수 있을지 알아보면 좋을 것 같다. spring security의 기본 프로젝트의 의존성으로 security를 추가하는 순가 보안 시스템이 작동하게 된다. 따로 설정을 해주지 않으면 기본값으로 설정된다. 이 기본 방식은 JWT방식과는 다른데, 기본 설정은 임시 메모리 저장소(InMemoryUserDetailsManager)를 사용한다. 애플리케이션이 시작될 때마다 user라는 임시 아이디와 임의의 비밀번호를 가진 사용자를 생성하게 되는데, db에 사용자를 어떻게 작업을 하든 security는 이를 알지 못한다. 우리가 설정하는 사용자는 db에 있는데 security는 임시 메모리에서 계속 찾고 있는 것이다...

coding 2025.10.17

JPA, MultipleBagFetchException

JPA를 사용하면서 N+1 문제와 같은 알아야 할 문제들이 있다. 특정 상황에서만 발생해서 당황할 수 있는 MultipleBagException에 대해 알아보자. MultipleBagException은 JPA/Hibernate에서 한 번의 쿼리로 두 개 이상의 List 타입 컬렉션(@OneToMany)을 fetch join 하려고 할 때 발생하는 예외이다. Multiple(여러 개의) Bag(List처럼 순서가 없고 중복을 허용하는 컬렉션/Hibernate용어) fetch(데이터를 한 번에 가져오려는 시도) Exception(예외) -> 여러 개의 List를 한 번에 가져오려다 생기는 오류라고 생각하면 된다.org.hibernate.loader.MultipleBagFetchException: cannot..

coding 2025.10.05

bandit 14->15

The password for the next level can be retrieved by submitting the password of the current level to port 30000 on localhost.30000번 포트로 현재 패스워드를 제출하면 다음 레벨로 갈 수 있는 패스워드를 받을 수 있다고 되어있다. 그러면 30000번 포트로 패스워드를 어떻게 보내야 하는가? nc(netcat)을 사용하면 된다. nc localhost 30000 패스워드를 입력하고 Enter nc(netcat)은 TCP, UDP 프로토콜을 사용해서 네트워크 연결을 생성하고 데이터를 주고 받을 수 있는 다목적 도구이다. 주요 기능 1. 포트 연결 (클라이언트 모드)특정 호스트의 포트에 연결하여 통신할 수 있..

overthewire/bandit 2025.09.28

bandit 13 -> 14

The password for the next level is stored in /etc/bandit_pass/bandit14 and can only be read by user bandit14. For this level, you don’t get the next password, but you get a private SSH key that can be used to log into the next level. Note: localhost is a hostname that refers to the machine you are working on패스워드는 /etc/bandit_pass/bandit14에 있지만 읽기 권한이 사용자 bandit14에게만 있다.이 단계에서는 패스워드를 얻을 필요 없이 ssh..

overthewire/bandit 2025.09.27

대칭키 및 비대칭키 암호화 방식

암호화 방식은 크게 대칭키 암호화와 비대칭키 암호화 두 가지로 나뉜다. 대칭키 암호화 -> 하나의 열쇠로 잠그고 열기암호화와 복호화에 같은 키를 사용하는 방식이다. 집 열쇠 하나로 문을 잠그고 여는 것과 같다고 생각하면 된다. 동작 원리1. 송신자가 평문을 대칭키로 암호화2. 수신자에게 전송3. 수신자가 같은 대칭키로 복호화 대표적인 대칭키 알고리즘AES : 가장 널리 사용되는 표준DES : 과거에 사용되었지만 보안상 취약하다3DES : DES를 3번 적용하여 보안을 강화한 버전ChaCha20 : 모바일 환경에 최적화된 알고리즘 장점 : 복잡한 연산이 적어 처리 속도가 빠르다. 대용량 데이터 처리에 유리하고, 효율적으로 자원을 사용할 수 있다.단점 : 송수신자가 안전하게 키를 공유하기가 어렵다. 사용자..

기술면접 2025.09.23

linux 명령어

sort 명령어기본 기능 : 텍스트 파일의 라인들을 알파벳 순서나 숫자 순서로 정렬한다.sort filenamesort data.txt사용 예시 옵션sort -r : 역순 정렬sort -n : 숫자 순서로 정렬sort -u : 중복 제거 정렬sort -k2 : 두 번째 필드를 기준으로 정렬 중복 데이터 처리 전 정렬 (uniq)할 때 사용할 수 있다. Strings 명령어기본 기능 : 바이너리 파일에서 인쇄 가능한 ASCII 문자열만 추출한다.strings filenamestrings data.txt사용 예시 옵션strings -n 숫자 : 최소 문자 길이 지정 (default :4)strings -a : 전체 파일 스캔strings -o : 문자열 위치(offset) 표시 strings 명령어는 실행 ..

coding 2025.09.20