자바 27

[Effective Java : Item 1] 생성자 대신 정적 팩터리 메서드를 고려하라

개요 클래스의 새로운 인스턴스를 얻으려고 할 때 보통은 생성자를 이용한다. 하지만 특정 상황에 따라 생성자 대신 '정적 팩터리 메서드'를 통해 인스턴스를 반환하는 것을 고려해볼 수 있다(디자인 패턴의 팩터리 메서드 패턴과는 관계가 없다). 정적 팩터리 메서드가 생성자보다 무조건 좋은 것은 아니며, 경우에 따라 둘 중 하나 또는 두 가지 모두 제공할 수 있다. 정적 팩터리 메서드를 사용할 경우 아래와 같은 장단점이 존재한다. 장점 1. 메서드명, 즉 이름을 가질 수 있다. 2. 호출될 때마다 새로운 객체를 생성할 필요가 없다. 3. 반환 타입의 하위 타입 객체를 반환할 수 있다. 4. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 5. 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체..

Backend/Java 2024.01.18

[Spring Security] 스프링 시큐리티 기본 API 및 Filter 이해 - 1

서론 최근 진행 중인 프로젝트에서 Spring Security를 이용한 로그인 인증 파트를 맡게 되었다. 따라서 관련 스프링 강의를 보고 정리할 겸 포스팅을 진행해보려고 한다. IDE는 IntelliJ IDEA 2022.2.2 Ultimate 를 사용하였다. 참조한 강의 링크는 아래와 같다. https://inf.run/wJBU 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 www.inflearn.com 프로젝트 구성 및 의존성 추가 Spring Security 적..

Backend/Spring 2022.11.07

[🥉2 / 백준 10820 / 파이썬, 자바] 문자열 분석

10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 문제 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다. 입력 첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다. 출력 첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다. 예제 입력 This is..

[🥈3 / 백준 5397 / 파이썬, 자바] 키로거

5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 강산이는 키보드로 ..

[🥉2 / 백준 10807 / 파이썬, 자바] 개수 세기

10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 문제 총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다. 출력 첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다. 예제 입력 1 11 1 4 1 2 4 2 4..

[🥉2 / 백준 15552 / 파이썬, 자바] 빠른 A+B

15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java..

[🥉5 / 백준 11283 / 파이썬, 자바] 한글 2

11283번: 한글 2 한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다. 초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있 www.acmicpc.net 문제 한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다. 초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있고, 중성은 ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ로 총 21개, 종성은 없음, ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄹ, ㄺ, ㄻ,..

반응형