no image
[Spring] 24.01.18 TIL
오늘 한 것 요약 Redis를 이용해서 분산락 구현 락 이란? 서비스를 구현 할 때 짧은 시간 내에 많은 요청이 들어오는 경우가 있다. 회원가입을 예로 들자면 public UserResponseDto createUser(UserRequestDto requestDto) { String name = requestDto.getName(); String email = requestDto.getEmail(); String password = requestDto.getPassword(); String phone = requestDto.getPhone(); String encodedPassword = passwordEncoder.encode(password); User user = userRepository.save..
2024.01.19
[Spring] 24.01.15 - TIL
오늘 한 일 트렐로 게시판 칼럼부분 CRUD구현 ( in Process ) UserController 에서 GetMapping 으로 loginPage함수를 불러오면 login.html 불러오도록 구현 오늘 겪었던 힘들었던 점 Error: Exceeded maxRedirects. Probably stuck in a redirect loop http://localhost:8080/api/user/login-page Exceeded maxRedirects 라고 에러가 떠서 한참 고생했다. 구글링해서 나와 비슷한 케이스로 고생한 사람들이 있는 지 확인해봤는데, 보통은 스프링 시큐리티에 권한이 없어서 생기는 오류라고 했는데, 시큐리티에 권한을 .requestMatchers("/login").permitAll() ..
2024.01.16
[BOJ] 9012 괄호 파이썬
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택을 이용한 괄호문제. 스택의 종류가 하나라서 개수만 확인하면 돼서 꽤 쉽다. ( 일 경우, 스택에 추가하고, )의 경우에 스택에서 pop하는 형식으로 짜고, 0개일때 pop하는경우랑, 마지막 문자까지 읽었는데 스택에 남아있는 경우에는 NO를, 마지막까지 읽었고 스택이 0인 경우엔 YES를 출력한다. 해답코드 T = int(input()) for _ in range..
2024.01.15
[BOJ]1002 터렛 파이썬
https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 $-1$ 출력한다. www.acmicpc.net x1, y1,.r1이 나오면 원이라고 생각하자. 두 원의 거리에 따른 원의 관계를 코드로 구현하는 문제였다. 틀린 코드 import math T = int(input()) for _ in range(T): x1, y1, r1, x2, y2, r2 = map(int, input().split()) # dist1 = 두 점의 직선 거리 (두 원의 중심간 거리) dist1 = math.sqrt((x1-x2)**2 + (y1-y2)**2) # dist2 ..
2024.01.15
no image
[항해99] WIL(6) - Spring Project
이번주에 한 일 이번 주 부터는 지금까지 배운 Spring 기술을 가지고 팀 프로젝트를 만든다. 프로젝트 주제는 트렐로 만들기! 저런 게시판을 만드는 프로젝트인데, 기능 구현과 더불어 "기능 개선"을 위주로 프로젝트를 진행한다. 사용자 관리 기능 [ ] 로그인 / 회원가입 기능 [ ] 사용자 정보 수정 및 삭제 기능 보드 관리 기능 [ ] 보드 생성 [ ] 보드 수정 보드 이름 배경 색상 설명 [ ] 보드 삭제 생성한 사용자만 삭제를 할 수 있습니다. [ ] 보드 초대 특정 사용자들을 해당 보드에 초대시켜 협업을 할 수 있어야 합니다. 컬럼 관리 기능 [ ] 컬럼 생성 보드 내부에 컬럼을 생성할 수 있어야 합니다. 컬럼이란 위 사진에서 Backlog, In Progress와 같은 것을 의미해요. [ ] ..
2024.01.15
[항해99] WIL (5) - Spring 개발 시작
이번 주에 배운 것 Spring initializr 을 이용해서 Spring 프로젝트를 시작 스프링에서 제공하는 기능을 이용해 간단한 CRUD 게시판 만들기 Jdbc template를 이용해서 쿼리문을 이용해 MySQL에 데이터 저장 및 불러오기 Jpa를 이용해 간단한 메서드나 애너테이션으로 엔티티 생성 및 데이터 저장, 불러오기 jwt를 이용한 로그인 기능 구현 이번 주에 느낀 것 이번 주차부터는 스프링에 대한 본격적인 공부가 시작되었는데, 강의에서 배운 내용을 응용해서 API설계부터 프로그램을 짜기까지의 과정을 반복했다. 모든 내용이 처음 배운 내용에서 조금씩 어떤 부분에서 개선되었고 바뀌는 것이 있었다. 예를들어 jdbc template에서는 직접 쿼리문을 사용해서 데이터 베이스에 접근했다면, Jp..
2024.01.07
[알고리즘] 백준 19637 IF문 좀 대신 써줘
https://www.acmicpc.net/problem/19637 19637번: IF문 좀 대신 써줘 첫 번째 줄에는 칭호의 개수 N (1 ≤ N ≤ 105)과 칭호를 출력해야 하는 캐릭터들의 개수 M (1 ≤ M ≤ 105)이 빈칸을 사이에 두고 주어진다. (1 ≤ N, M ≤ 105) 두 번째 줄부터 N개의 줄에 각 칭 www.acmicpc.net 이진 탐색 문제다. 주어지는 N과 M이 둘 다 10^5 까지의 범위기 때문에, if문으로 전부 비교하게 되면 10^10으로 1초의 시간제한을 벗어나게 된다. 처음에 문제에 접근할 때는, 이진탐색으로 칭호를 기준으로 이진탐색하면서 ~칭호 이하의 개수만큼 ~칭호를 출력, 그 초과, 다음 이하의 개수만큼 ~칭호를 출력 하려고 생각했는데, 거꾸로 생각하면 더 편..
2024.01.04
no image
[Spring] 게시판 만들기
https://github.com/mingtian-chan/Hang99_Spring_intro/tree/week1_assignment GitHub - mingtian-chan/Hang99_Spring_intro Contribute to mingtian-chan/Hang99_Spring_intro development by creating an account on GitHub. github.com Spring을 이용해서 Restful 하게 CRUD를 구현하는 과제였다. 과제를 하면서 힘들었던 점이 몇 가지 있었기에 공유하고자 한다. 힘들었던 점 MySQL이 갑자기 연결이 안됨 말 그대로 잘 되다가 갑자기 MySQL연결이 안되어서 시간을 많이 빼앗겼다. 컴퓨터 재부팅을 하니까 제대로 잘 작동했는데, 오늘 멘..
2024.01.04
no image
[항해99] WIL(4) - 알고리즘 공부
이번 주에 배운 것 이번주가 알고리즘을 배우는 마지막 주차였다. 마지막 주라 그런지, 배우는 개념도 어느정도 난이도가 있었다. 정렬 알고리즘 (Quick sort, Merge sort), 이진 탐색(Binary Search), 이진탐색을 이용한 최적화 문제 해결 (파라메트릭 서치 기법), 최단경로찾기 (다익스트라, 플로이드), 동적계획법( Dynamic Programming ) 을 배웠다. 이번 주에 느낀 점 문제를 푸는 것은 크게 두가지의 과정이 있다. 1. 문제를 어떻게 풀어야 할 지를 고민하고 2. 고민한 생각을 실제 코드로 구현 대개는 문제 난이도가 (1,2가 둘다 쉬운 문제) -> (1은 쉽지만 2가 까다로운 문제) -> (2는 쉽지만 1이 까다로운 문제) -> (1,2 둘 다 까다로운 문제) ..
2023.12.31