일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준
- JIRA
- 오블완
- 데이터베이스
- 스프링시큐리티
- 도커
- 파이썬
- 액세스토큰
- 토이프로젝트
- springsecurity
- githubactions
- oauth2
- springsecurityoauth2client
- 스프링부트
- 소셜로그인
- AWS
- springdataredis
- docker
- 티스토리챌린지
- Spring
- 프로그래머스
- 재갱신
- 스프링
- java
- CI/CD
- 국제화
- 트랜잭션
- 리프레시토큰
- 메시지
- yaml-resource-bundle
- Today
- Total
목록분류 전체보기 (95)
땃쥐네
문제 번호 : 120846 제목 : 합성수 찾기 난이도 : Level 0 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return 문제 : 링크 필요 알고리즘 소수 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수 합성수 1보다 큰 자연수 중에서 소수가 아닌 수 약수의 개수가 3개 이상인 수 둘 이상의 소수를 곱한 자연수 에라토스테네스의 체 특정 범위의 자연수들의 소수, 합성수 여부를 판단하는 가장 기본적인 알고리즘 1은 소수도 합성수도 아니다. (알고리즘 풀 때 이 부분을 놓치는 경우가 있어서 문제를 잘 읽고 이 부분을 문제에 맞게 잘 체크해야한다.) 2부터 시작한다. 2는 합성수로 체크되어 있지 않으므로 소수이다. 2보다 큰 2의 배수는 모두 합성수이므로 이들을 모두 합성수로 ..
문제 플랫폼 : 프로그래머스 번호 : 042576 제목 : 완주하지 못한 선수 난이도 : Level 1 완주하지 못한 선수의 이름을 return 문제 : 링크 필요 지식 해시 파이썬 : Counter 풀이 Python 풀이1 from collections import Counter def solution(participant, completion): participant, completion = Counter(participant), Counter(completion) for key, value in participant.items(): if key not in completion or completion[key] != value: return key 파이썬에서는 Counter를 통해, 각각의 요소들의 ..
문제 번호 : 120840 제목 : 구슬을 나누는 경우의 수 난이도 : Level 0 서로 다른 balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수 문제 : 링크 필요 알고리즘 재귀 함수에 대한 이해가 필요하다. 조합수에 대한 간단한 이해가 필요하다. (고등학교 수학) 조합수는 n개의 요소에서 r개의 요소를 선택하는 경우의 수이다. 이 글에서는 n개의 요소에서 r개의 요소를 선택하는 조합수를 comb(n,r)이라 할 것이다. 조합수의 성질 comb(n,r) == comb(n, n-r) : n개의 요소에서 r개를 택하는 것은, 나머지 n-r개를 결정하는 것과 같다. comb(n,1) == comb(n,n-1) == n : n개의 요소에서 1개를 택하는 경우의 수는 n가지이다. com..
문제 번호 : 064061 제목 : 크레인 인형뽑기 게임 난이도 : Level 1 문제 : 링크 필요 알고리즘 Stack 자료구조에 대한 이해가 필요하다. java에서 Stack을 사용할 때는 java.util.Stack 을 사용한다. push(삽입), pop(추출), peek(마지막 요소 확인), isEmpty 메서드를 잘 사용하면 된다. Stack에 아무 요소가 없을 가능성이 있으므로 추출할 때는 isEmpty 메서드를 사용해 요소의 존재 여부를 파악해야 한다. peek 메서드를 통해 마지막 요소를 확인할 수 있다. 풀이 github 링크 : 링크 전체 로직 public class Solution { private static int answer = 0; public int solution(int[]..
오브젝트의 15장을 읽으며 디자인 패턴 이야기가 나온 부분에서 Composite 패턴을 접했는데, 최근 SpringSecurity의 DelegatingPasswordEncoder 코드를 확인하는 과정에서 컴포짓 패턴이 적용된 것을 확인하게 되었고 컴포짓 패턴이 무엇인지 간단하게 정리해보기로 했다. 클라이언트와 Component의 컴파일 의존관계 - 어떤 객체가 '클라이언트'에게 foo 메시지를 전송하였다. - 클라이언트는 foo 메시지에 자기 나름의 방식대로 처리(메서드)하고 응답 할 책임을 가진다. - 하지만 이 과정에서 클라이언트 스스로 처리할 수 없는 일은 내부적으로 알고 있는 Component 역할에게 operation() 메시지를 전송하여 협력을 요청한다. - Component 역할을 수행할 수..
도커를 다루는 작업은 결국 이미지로부터 컨테이너를 띄우고, 컨테이너를 정지시키거나 없애거나 하는 행위의 흐름을 통해 이루어진다. 도커의 컨테이너 상태를 확인할 수 있어야하고, 명령어를 통해 컨테이너의 상태를 변경할 수 있어야한다. 이를 위한 기본적인 명령어들을 몇 가지 확인해보려고 한다. 1. docker ps : 실행 중인 컨테이너 확인 1.1 실습을 위해 우분투 컨테이너를 백그라운드에서 실행 docker run -d -t ubuntu:22.04 우분투 이미지를 컨테이너화 해서 백그라운드에서 실행한다. 백그라운드에서 계속 실행되어야할 때가 있는데 이럴 경우 -d 옵션을 붙여주면 된다. 웹 서버와 같이, 백그라운드에서 계속 운영하는 애플리케이션을 동작 시킬 경우 이 옵션을 사용하면 된다. 1.2 실행 중..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. Intro 앞에서 학습했듯 컴퓨터는 결국 0과 1만 이해할 수 있다. 인간이 이해할 수 있는 문자들도 결국 0과 1의 비트로 변환되고, 컴퓨터는 이를 기반으로 해석해서 처리한다. 그렇다면 우리가 작성한 문자들은 어떤 형태의 비트로 변환되는 걸까? 이 규칙도 여러가지가 있는데 이를 확인해보는 것은 컴퓨터에 대한 이해를 증진시키는데 도움되기 때문에 한번쯤은 다뤄볼 필요가 있다. 1. 문자 집합, 문자 인코딩, 문자 디코딩 1.1 문자 집합(Character Set) 컴퓨터가 인식하고 표현할 수 있는 문자들의 모음 예) ASCII 문자집합, EUC-KR 문자 집합, CP949 문자 집합, ... 어떤..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. 1. 정보단위 : 비트, 바이트, ... 1.1 비트 0 과 1을 나타내는 가장 작은 정보 단위 1비트는 2가지 정보를 표현할 수 있다. 2비트는 2**2 가지 정보를 표현할 수 있다. n비트는 2**n 가지 정보를 표현할 수 있다. 1개의 비트를 통해 2가지 정보를 표현할 수 있고, 이를 확장하여 여러 개의 비트를 통해 다양한 정보를 표현할 수 있게 된다. 1.2 비트의 묶음 바이트 : 1byte == 8bit 킬로바이트(KB, Kilobyte) : 10**3(==1000) byte 메가바이트(MB, Megabyte) : 10**6 byte == 1000 KB 기가바이트(GB, Gigabyte..