반응형

분류 전체보기 272

[백준 / NodeJS] 10828번 스택

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1. 문제 설명 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스..

Algorithm 2023.03.25

[Spring Boot] Spring Batch + scheduler 사용해 일정 주기로 실행 방법

Spring Batch란? 대용량 일괄처리의 편의를 위해 설계된 가볍고 포괄적인 배치 프레임워크다. 1. Gradle에 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-batch' implementation 'org.springframework.boot:spring-boot-starter-quartz' testImplementation 'org.springframework.batch:spring-batch-test' 2. BatchConfig.java 생성 @Slf4j @Configuration @EnableBatchProcessing public class BatchConfig { @Autowired public JobBuilde..

Java 2023.03.24

[Spring Boot / Java8] OpenAI API GPT3 사용 방법

1. OpenAI Key 발급 로그인 => 좌측 상단 [Personal] 클릭 => [View API keys] 클릭 https://platform.openai.com/overview OpenAI API An API for accessing new AI models developed by OpenAI platform.openai.com API Key는 최초 발급받을 때 한 번만 확인할 수 있다. 2. OpenAI Sevice 생성 @Slf4j @Service public class OpenAIService { private static final String API_ENDPOINT = "https://api.openai.com/v1/"; @Value("${OPEN_AI_KEY}") private Stri..

Java 2023.03.23

[프로그래머스/JavaScript] Lv.2 리코쳇 로봇

https://school.programmers.co.kr/learn/courses/30/lessons/169199?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 1. 문제 설명 리코쳇 로봇이라는 보드게임이 있습니다. 이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 목표 위치까지 최소 몇 번만에 도달할 수 있는지 말하는 게임입니다. 이 게임에서 말의 움직임은 상, 하, 좌, 우 4방향 중 하나를 선택해서 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한..

Algorithm 2023.03.22

[Spring Boot] Security @AuthenticationPricipal 객체로 로그인 정보 받는 방법

@AuthenticationPricipal를 사용해 로그인한 사용자 정보를 받아올 수 있다. 하지만, @AuthenticationPricipal 타입은 UserDetails이기 때문에 커스텀을 해줘야 한다. 1. 기존 Security + JWT 설정 방법 2022.10.25 - [Java] - [Spring Boot] Spring Security JWT를 사용한 토큰 인증 구현 2. UserDetails을 커스텀한 클래스를 작성한다. @Builder @Data @NoArgsConstructor @AllArgsConstructor public class CustomUserDetails implements UserDetails { private String username; private String pas..

Java 2023.03.21

[프로그래머스/JavaScript] Lv.2 당구 연습

https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 프로그래머스의 마스코트인 머쓱이는 최근 취미로 당구를 치기 시작했습니다. 머쓱이는 손 대신 날개를 사용해야 해서 당구를 잘 못 칩니다. 하지만 끈기가 강한 머쓱이는 열심히 노력해서 당구를 잘 치려고 당구 학원에 다니고 있습니다. 오늘도 당구 학원에 나온 머쓱이에게 당구 선생님이"원쿠션"(당구에서 공을 쳐서 벽에 맞히는 걸 쿠션이라고 부르고, 벽에 한 번 맞힌 후 공에 맞히면 원쿠..

Algorithm 2023.03.20

[프로그래머스/JavaScript] Lv.2 미로 탈출

https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 1 x 1 크기의 칸들로 이루어진 직사각형 격자 형태의 미로에서 탈출하려고 합니다. 각 칸은 통로 또는 벽으로 구성되어 있으며, 벽으로 된 칸은 지나갈 수 없고 통로로 된 칸으로만 이동할 수 있습니다. 통로들 중 한 칸에는 미로를 빠져나가는 문이 있는데, 이 문은 레버를 당겨서만 열 수 있습니다. 레버 또한 통로들 중 한 칸에 있습니다. 따라서, 출발 지점에서 먼저 레버가 있는 ..

Algorithm 2023.03.17

[NextJS / 해킹] XSS(Cross Site Scripting) 취약점 해결 방법

XSS XSS란? 웹 사이트에 악성 스크립트를 삽입하여 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 할 수 있다. 주로 다른 웹사이트와 정보를 교환하는 식으로 작동하므로 사이트 간 스크립팅이라고 한다. 웹 사이트가 입력받은 값을 검증하지 않고 사용할 경우 발생 1. 테스트 예시 입력 값에 ["> ] 삽입 2. 해결 방안 2-1) NextJS 해결 방안 next.config.js 파일의 headers에 해당 값을 추가 해당 값을 추가하게 되면 XSS 공격을 XSS공격을 감지했을 때 페이지 로드를 중지한다. * XSS 해결 방안 공식문서 https://nextjs.org/docs/advanced-features/security-headers module.exports =..

React 2023.03.16

[프로그래머스/JavaScript] Lv.2 혼자서 하는 틱택토

https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 틱택토는 두 사람이 하는 게임으로 처음에 3x3의 빈칸으로 이루어진 게임판에 선공이 "O", 후공이 "X"를 번갈아가면서 빈칸에 표시하는 게임입니다. 가로, 세로, 대각선으로 3개가 같은 표시가 만들어지면 같은 표시를 만든 사람이 승리하고 게임이 종료되며 9칸이 모두 차서 더 이상 표시를 할 수 없는 경우에는 무승부로 게임이 종료됩니다. 할 일이 없어 한가한 머쓱이는 두 사람이 ..

Algorithm 2023.03.15

[프로그래머스/JavaScript] Lv.1 대충 만든 자판

https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다. 예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가 할당되어 있다면 1번 키를 한 번 누르면 "A", 두 번 누르면 "B", 세 번 누르면 "C"가 되는 식입니다...

Algorithm 2023.03.13
반응형