본문 바로가기

분류 전체보기153

[Spring] @RequiredArgsConstructor와 @Autowired Spring 프레임워크에서 의존성 주입(Dependency Injection)을 위해 다양한 어노테이션을 사용한다. 그 중 @RequiredArgsConstructor와 @Autowired는 자주 사용되는 어노테이션이다. 이 두 어노테이션의 역할, 사용법, 그리고 선택 기준을 정리해보았다. @RequiredArgsConstructor의 역할@RequiredArgsConstructor는 Lombok 라이브러리에서 제공하는 어노테이션이다. 수행하는 작업: 1. final로 선언된 필드나 @NonNull 어노테이션이 붙은 필드에 대한 생성자를 자동으로 생성한다. 2. 생성자 기반 의존성 주입을 쉽게 구현할 수 있게 해준다. 3. 코드를 간결하게 만들어준다. 예시@Service@RequiredArgsConstr.. 2024. 10. 3.
[netplix-security-a] AOP를 활용하여 비밀번호 암호화하기 Netplix 구독형 멤버십 프로젝트로 배우는 SpringSecurity[Ch 4. PasswordEncoder] - 04. AOP를 활용하여 비밀번호 암호화하기강의를 바탕으로 실습 내용을 정리하였습니다.목차 1. 아래 암호화 요구사항은 어떻게 해결할 수 있을까?요구사항API 를 호출하는 클라이언트는 평문으로 비밀번호를 입력함보안을 위해 서버는 비밀번호를 암호화하여 관리함암호화 알고리즘은 수시로 변경될 수 있음 2. 암호화를 하려면 어떻게 해야 할까?HelloRequestBody 로 평문 비밀번호를 입력 받은 다음 직접 암호화 로직을 실행시킴단점: 암호화가 필요한 시점에 매번 로직을 수행해야 한다는 점HelloControllerpackage fast.campus.fcss01.controller;impor.. 2024. 10. 3.
[netplix-security-a] PasswordEncoder 구현 Netplix 구독형 멤버십 프로젝트로 배우는 SpringSecurity[Ch 4. PasswordEncoder] - 01. PasswordEncoder 살펴보기강의를 바탕으로 실습 내용을 정리하였습니다.목차 1. 키 생성기키 생성기는 특정한 종류의 키를 생성하는 객체로 일반적으로 암호화나 해싱 알고리즘에 필요함스프링 시큐리티에서 제공하는 키 생성기 인터페이스:BytesKeyGeneratorStringKeyGenerator StringKeyGenerator문자열 키 생성기를 이용해 문자열 키를 얻을 수 있음이 키를 기반으로 해싱 또는 알고리즘의 솔트(salt) 값으로 이용할 수 있음StringKeyGenerator 는 generateKey() 메소드를 제공함 StringKeyGenerator 와 솔팅St.. 2024. 10. 3.
[백준] 1929번: 소수 구하기 (Java) 1. 문제설명M이상 N이하의 소수를 모두 출력하는 문제이다.시간 제한: 2초메모리 제한: 256MB 2. 접근 방식소수: 1과 자기 자신만을 약수로 가지는 수에라토스테네스의 체 알고리즘을 사용한다. (https://propercoding.tistory.com/182)2부터 $\sqrt{N}$까지의 소수의 배수를 제거하여 소수를 판별한다.boolean 배열을 사용하여 N까지 수의 소수 여부 저장한다. (false: 소수, true: 합성수)M부터 N까지 소수인 수를 출력한다. 3. 틀린 이유for(int i=M; i 약수: 1,2,3,4,6 cnt++; if(i / j != j) { // j가 약수이면 i/j도 약수 .. 2024. 10. 3.
[백준] 7579번: 앱 (Java) 1. 문제설명스마트폰의 메모리는 메모리 부족 상태를 방지하기 위해 활성화 되어 있는 앱들 중 몇 개를 선택하여 메모리로부터 삭제하는 과정을 수행한다.(비활성화)현재 N개의 앱이 활성화 되어 있을 때, 앱 $A_i$는 각각 $m_i$ 바이트만큼 메모리를 사용한다. 앱 $A_i$를 비활성화한 후 다시 실행시키면, 추가적으로 드는 비용은 $c_i$ 이다. 새로운 앱을 실행시키면 추가로 $M$ 바이트의 메모리가 필요하고, 현재 활성화 되어 있는 앱 중 몇 개를 비활성화하여 M 바이트 이상의 메모리를 추가로 확보해야 한다.비활성화 했을 경우의 메모리 $M$ 바이트를 확보하는 비용 $c_i$ 의 최소 비용을 구하는 문제이다.시간 제한: 1초메모리 제한: 128MB 2. 접근 방식DP 방법을 사용한다. (Knapsa.. 2024. 10. 1.
[백준] 2138번: 전구와 스위치 (Java) 1. 문제설명N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져있거나 꺼져있는 상태이다. i번 스위치를 누르면 i-1, i, i+1 의 세 개의 전구 상태가 바뀐다. 현재 상태와 반대로 바뀐다.N개의 전구들을 만들고자 하는 상태로 만들기 위해 스위치를 최소 몇 번 누르면 되는지 구하는 문제이다.시간 제한: 2초메모리 제한: 128MB 2. 접근 방식그리디 알고리즘을 사용한다.첫 번째 전구부터 순차적으로 처리한다.각 단계에서 현재 전구의 왼쪽 전구가 목표 상태와 다르면 현재 스위치를 누른다.첫 번째 스위치를 누르는 경우(curA)와 누르지 않는 경우(curB)를 고려한다.첫 번째 스위치의 상태가 이후의 모든 결정에 영향을 미치기 때문.두 번째 전구부터 현재 상태와 목표 상태를 비교하며 진행한다.i-1.. 2024. 10. 1.
[백준] 21941번: 문자열 제거 (Java) 1. 문제설명지우고 싶은 문자열 S와 지울 수 있는 문자열 A1, A2, …, AM이 주어진다. 문자열 Ai 들은 각자 Xi라는 점수를 가진다. 문자열 S를 삭제 연산을 이용하여 모두 제거하려고 한다.삭제 연산 두 가지문자열 S의 부분 문자열 중에 문자열 Ai 가 존재한다면 해당하는 부분을 지우고, Xi 만큼의 점수를 얻는다. (여러 부분 존재해도 한 번만 지운다.)문자열 S에서 문자 하나를 지우고 점수를 1점을 얻을 수 있다.삭제 연산을 이용하여 문자열 S를 지우려고 할 때 얻을 수 있는 최대 점수를 구하는 문제이다.시간 제한: 1초메모리 제한: 512MB 2. 접근 방식DP 방법을 사용한다.문자열 S의 각 위치에 대해 그 위치까지의 최대 점수를 저장하는 1차원 dp 배열을 사용한다.각 위치에서 고려하.. 2024. 10. 1.
반응형