사용자 인증을 다양한 방식으로 할 수 있다. 프로젝트를 진행하면서 ArgumentResolver와 Interceptor를 사용하여 구현하였다. 둘 간의 차이점이 어떤 것이 있는지 살펴보자! 둘의 Configuration 설정은 다음과 같다. @Configuration public class AuthenticationPrincipalConfig implements WebMvcConfigurer { private final AuthService authService; private final LoginInterceptor loginInterceptor; private final AdminLoginInterceptor adminLoginInterceptor; public AuthenticationPrincip..
1. 최소공배수, 최대공약수 구하기 파이썬에서 기본 gcd 라이브러리를 제공 from math import gcd def solution(n, m): answer = gcd(n,m) return answer 유클리드 호제법 숫자 n, m가 있을 때(단 n>m), n를 m로 나눈 나머지(re)와 m 의 최대 공약수 는 n 와 m 의 최대 공약수 가 같다는 것을 의미한다. # gcd def gcd(n, m): while m > 0: n, m = m, n % m return n 최소공배수 from math import gcd def lcm(a, b): return a * b // gcd(a,b) 2. 소수구하기: 에라스토스테네스의 체 배수들을 소수 목록에서 제거하는 방식 n의 제곱근까지만 알아봐도 된다. (나..
zip 기본 내장함수와 *list (unpacking) 을 사용하여, 2중 for 문을 사용하지 않고 row, column 을 뒤집을 수 있다. N*N 배열이 아닌 각 배열 크기가 다른 2차원 배열인 경우 예상하지 않은 결과가 나올 수 있다. # 2차원 배열 행, 열 뒤집기 arrays = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] flip_arrays = list(map(list, zip(*arrays))) #1 print(arrays) #2 print(flip_arrays) #3 for item in zip(*arrays): print(item) # 출력 #1 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] #2 [[1, 4, 7], [2, 5, 8], [3, 6, 9]..
CORS? 교차 출처 리소스 공유 Cross-Origin Resource Sharing CORS 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원 CORS 응답으로 서버는 Access-Control-Allow-Origin 헤더를 보냄 'HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제' 배경 웹 브라우저는 access token이나 cookie 등과 같이 유저와 관련된 데이터를 저장 정보가 노출, 외부로 전송이 되거나 조작될 수 있다면 보안적으로 심각한 문제 따라서 Same-Origin policy 정책을 도입되었음(같은 출처의 서버와 정보 공유) 프론트와 서버가 분리되는 방향..
Flyway? DB 변경사항 형상관리 오픈소스 community 무료버전과 유료버전이 있다. 7 Commands Migrate, Clean, Info, Validate, Undo, Baseline, Repair 라는 7개의 명령어를 지원한다. Migrate: DB의 스키마를 최신 버전으로 변경한다. Clean: 스키마의 내용을 삭제한다. (운영 DB에서 사용하면 안된다) Info: migration 과 관련된 상태외 상세정보를 보여준다. Validate: 현재 적용된 부분과 일치하는지 알려준다. Undo: 가장 최신에 적용된 migration을 되돌리기 한다. Baseline: baselineVersion을 제외하고 migration 한다. Repair: DB flyway 내역을 수정한다. Migrate..
ssh 통신을 매번 ip 주소 넣으며 하기 번거로운데 간단하게 설정하는 방법이 있다. ssh config 설정파일에 들어간다 # 해당 파일에 들어가거나 만든다. vi ~/.ssh/config 설정파일에 아래와 같은 형식으로 저장한다. Host 이름설정 HostName IP주소 User ubuntu IdentityFile ~/.ssh/펨키.pem # 같은 형식으로 여러개 저장가능 펨키를 ~/.ssh 경로에 넣는다 터미널에서 `ssh 설정한이름` 으로 접속가능! # 기존 # pem 키가 있는 경로로 이동하여 아래와 같이 매번 입력해야했다. ssh -i my_key.pem ubuntu@IP주소 # 설정 후 # 내가 설정한 이름이 abc_my_name 이라면, abc 입력후 탭을 누르면 찾아준다. ssh abc..
Elastic Stack ELK: Elasticsearch, Logstash, Kibana Elasticsearch: 검색 및 분석엔진 Logstash: 서버 사이드 데이터 처리 파이프라인, 여러 소스의 데이터를 수집하여 변환한 뒤 elasticsearch 에 전송 Kibana: Elasticsearch 의 내용을 차트와 그래프를 이용해 데이터를 시각화 Beats: 경량의 단일 목적 데이터 수집기 제품군 Elastic Stack: ELK + Beat ELK 설치하기 프로젝트를 하면서는 별도의 EC2에 docker 에 설치하였다. elk docker 설치 참고 레포짓토리 elk 서버에 logstash, elasticsearch, kibana 를 설치 logstash, kibana 는 elasticsearc..
- Total
- Today
- Yesterday
- 우테코수업
- 개발공부일지
- 월간회고
- 모의면접준비
- 인증
- 객체지향
- 학습로그
- JPA
- 알고리즘
- 내부코드
- 코드스쿼드
- JS
- javascript
- 글쓰기미션
- DB
- 카카오
- 우아한테크코스
- TCP/IP
- React
- CS
- 운영체제
- Spring
- Transaction
- TIL
- 네트워크
- 마스터즈코스
- 회고
- python
- OS
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |