일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gcp cloud build
- Baekjoon
- 웹해킹
- 사이버보안
- 스프링 배치
- kotest
- gcp
- programmers
- 프로그래머스
- 리버싱
- hackctf
- 파이썬
- sequelize
- 보안
- 시스템 해킹
- 회고
- Batch
- 백준
- pwnable.xyz
- 웹보안
- cloud run
- webhacking.kr
- Python
- 포너블
- nodejs
- docker
- 네트워크
- node.js
- gcp ci/cd
- spring Batch
목록전체 글 (112)
uju's Tech
aws의 s3를 주로 사용해왔어서 gcp의 cloud storage도 쉬울줄 알았건만 연결하는 과정에서 막히는 부분이 많았다 .. 😭ㅋ 1. 일단 gcp의 cloud storage에 들어가서 생성을 해준다. (그냥 생성하면 된다.. 여긴 생략) 2. iam에서 권한을 바꿔줘야한다.. (권한 바꿔주지 않고 개발하다가 왜 안돼..이랬던 기억이..😔) iam (api 권한) 을 all users 로 변경하고(모든 사용자가 접근할 수 있게), ACL 객체 public으로 변경해준다. storage 버킷의 권한에 들어가면 하단에 권한 구성원을 확인할 수 있다. 위와 같이 권한을 추가해 주었다. 3. 그러면 multer을 이용해서 프로젝트의 utils파일에 로컬에 올라갈 파일 경로 설정하자,, const uploa..
https://start.spring.io/ 를 통해 프로젝트를 생성 할 수 있다. 스프링 Initializr는 REST API를 사용하는 브라우저 기반의 웹 애플리케이션이며, 스프링 프로젝트 구조를 생성해준다. 요즘은 Maven 프로젝트 보다는 Gradle 프로젝트를 더 대중적으로 사용하고있어 Gradle로 해주었고 언어는 JAVA , spring Boot 버전은 최신꺼에서 가장 안정화된 버전을 사용해주었다. Dependencies는 spring web과 thymleaf를 설정해주었다. 해당 프로젝트 설정이 끝나면 generate를 해주고 해당 파일을 압축을 풀어서 intellij에서 프로젝트 오픈을 해주면 된다. 쉽고 간단하게 프로젝트 생성 끝~!
문제 더보기 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. ..
문제 더보기 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 sanswer "pPoooyY" true "Pyy" false 입출력 예 설명 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 re..
문제 더보기 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개..
개발을 진행하면서 가끔 3개의 테이블을 조인하여 가져오는 경우가 발생한다. 또 ORM 을 쓸 때 간혹 join 할 수 있는 테이블을 각각 선택하여 가져오는 경우가 있는데 이럴 경우 n+1 Problem 이 발생한다. N+1 Problem이란? 스스로 이해한 것을 정리해보면 유저 테이블과 유저 테이블과 연결된 할 일 테이블이 있을 때 , 할 일 테이블의 리스트를 쭉 가져오는 쿼리 1번 해당 쿼리에서 가져온 데이터 N개 만큼 또 일치하는 사용자를 찾는 쿼리 N번. 그래서 N+1 문제가 발생한다고 이해했다. 이를 방지하려면 join를 적절히 이용해줘야 할 것 같다. 아래 링크를 확인해 보면 될 것 같다. https://zetawiki.com/wiki/N%2B1_%EC%BF%BC%EB%A6%AC_%EB%AC%B..
소셜 로그인 개발은 몇달 전 진행했던 개발인데.. notion에 적어두었다가 지금에서야 블로그를 작성합니다 ㅎㅎ.. 페이스북, 카카오, 애플, 구글 이렇게 4가지 소셜 로그인을 진행하였고 두 번째부터 정리해보겠다. 소셜 로그인 구현은 모두 공식문서를 기반으로 구현하였다. 문서를 읽어보면 소셜 회원가입 플로우는 모두 동일한 것 같다. 페이스북에서도 작성했지만 또 작성해보도록 하겠다. 페이스북 회원가입 구현은 아래 링크로 ㅎㅎ https://uju-tech.tistory.com/85 [Node.js] 소셜 로그인 정복하기 - facebook 소셜 로그인 개발은 몇달 전 진행했던 개발인데.. notion에 적어두었다가 지 uju-tech.tistory.com 1. 구글 회원가입 flow 문서를 읽어보면서 이해..
소셜 로그인 개발은 몇달 전 진행했던 개발인데.. notion에 적어두었다가 지금에서야 블로그를 작성합니다 ㅎㅎ.. 페이스북, 카카오, 애플, 구글 이렇게 4가지 소셜 로그인을 진행하였고 먼저 페이스북부터 정리해보겠다. 소셜 로그인 구현은 모두 공식문서를 기반으로 구현하였다. https://developers.facebook.com/docs/facebook-login/web 1. 페이스북 개발자 계정에서 앱 등록하기 앱을 등록하게 되면 앱의 ID가 나오는데 이를 개발에 이용합니다. 2. 어떠한 flow 로 소셜 로그인이 진행되는지 살펴보자. 문서를 읽어보면서 이해한 그대로 도식화해보았다. 1. client가 facebook server로 회원가입 요청 2. facebook server가 accessTok..