일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- webhacking.kr
- docker
- 스프링 배치
- 백준
- hackctf
- 리버싱
- gcp ci/cd
- node.js
- nodejs
- 회고
- programmers
- 네트워크
- sequelize
- Python
- Batch
- cloud run
- 포너블
- gcp
- 프로그래머스
- pwnable.xyz
- 사이버보안
- 웹보안
- kotest
- 시스템 해킹
- 웹해킹
- gcp cloud build
- spring Batch
- 파이썬
- 보안
- Baekjoon
목록IT (112)
uju's Tech
Passport local strategy passport 에서의 local strategy는 가장 기본적인 email 과 password 를 가지고 인증하는것이다. (로그인할 때 사용됨) nest 에서도 @nest/passport 와 passport-local 을 사용하여 local strategy를 구현할 수 있다. 들어가기전 일단..local strategy가 동작하는 흐름 보기. id , password 로 로그인 요청 AuthGuard 를 통해 사용자 인증 AuthGuard 가 호출되면 LocalStrategy 의 validate 호출 유저가 인증되면 AuthGuard 의 canActivate 가 true 리턴 Step1. 라이브러리 설치 $ npm install --save @nestjs/pa..
하..현재 진행하고 있는 토이 프로젝트에서 production으로 배포하는 과정에서 해당 에러가 발생하였다.. ~오늘 당장 배포해줘야하는데 갑자기 배포가 정상적으로 안되니 두근두근거렸다..ㅋㅋㅋ 하여튼... cloud build를 통해 트리거가 되고있는데 .. 해당 에러가 발생한 링크에 들어가보면 트리거에 pull_request_closed_trigger_1 이렇게 나왔다. 처음에는 이를 해결하기 위해 해당 pull request를 닫고 다시 open하여 tirgger가 동작하도록 해주었지만 동일한 에러가 발생하면서 build가 실패하니 cloud run에도 정상적으로 배포되지 않았다. 혹시나 해서 main 브랜치의 cloud run, cloud build를 다시 세팅해주었지만.. 결과는 똑같았다. 결과..
sequelize 에서 데이터베이스 마이그레이션 시 ERROR: Cannot read property 'toString' of undefined 에러가 발생할 때가 있는데 changeColumn 등 을 이용할 때 해당 칼럼의 타입을 꼭 명시해주어야한다. type을 명시해주지 않고 마이그레이션하면 위와 같은 에러 발생한다. - 에러 상황 await queryInterface.changeColumn('users', 'serviceId', { allowNull: true, }, { transaction }); - 해결 await queryInterface.changeColumn('users', 'serviceId', { type: Sequelize.UUID, allowNull: true, }, { transa..
데이터 반환을 할 때 utc 날짜로 반환되는 것을 "mm 월 - d일- 요일" 로 반환을 해주었으면 좋겠다는 요청이 있었다. 리스트에 있는 모든 date 형태를 원하는 형태로 바꾸어주었어야 했기 때문에 forEach를 사용해주었다. const list = []; data.forEach((d) => { const utcDate = new Date(d.dataValues.date).toUTCString(); d.dataValues.date = moment(utcDate).locale('ko').format('M월 D일 dddd'); list.push(toDo); }); toUTCString을 사용하여 utc 객체를 문자열로 변환해준다. 이를 사용하여 원하는 포맷으로 만들어주기 위해 moment 객체를 사용해..
데이터베이스의 여러 테이블의 정보를 반영시킬 때 transaction 을 걸지 않고 구현하게 되면 정상적으로 반영이 이루어지지 않는다. 여러 테이블의 정보를 변경할 때 아래와 같이 transaction을 선언해주고 transaction을 걸어준다. const transaction = await db.sequelize.transaction(); 그 후 커밋을 하고 에러가 발생할 경우 롤백을 진행해준다. { await User.create(data, transaction); ... await transaction.commit(); } catch (err) { await transaction?.rollback(); } 가끔 위에서 transaction을 선언하고 커밋 전에 다른 에러가 발생하여 throw 될 ..
애플로 회원가입 시 사용자가 기기 내에서 앱 연결 끊기 를 할 수 있다. 이 경우 앱 연결을 끊게 되면 어떠한 action을 할 것인지 api를 등록하여 지정할 수 있다. apple developer의 identifiers에서 App IDs를 들어간다. 소셜 로그인이 설정되어있는 app id에 들어가보자. Sign in with Apple에서 Edit을 누르면 아래와 같이 나오는데 여기서 url을 설정해주면 해당 url로 웹훅이 호출된다. 해당 url에 POST 방식으로 호출되므로 POST 로 요청되도록 구현해주어야한다. 그리고 apple이 api로 payload 라는 body값을 주는데 이는 JWT 형식이다. 해당 값을 decode 해보면 아래와 같이 나온다고 한다. 아래 공식 문서를 참고해보자. ht..
문제 더보기 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 입출력 예 citati..
문제 더보기 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solutio..