[토이 프로젝트] 스프링 시큐리티 토큰 적용하기 (Bearer Token)
·
프로젝트 및 컨퍼런스 회고/프로젝트
이전 글 [토이 프로젝트] spring boot 로그인 기능 만들기-2 (스프링 시큐리티 적용)이전 프로젝트 [토이 프로젝트] 회원가입 기능 만들기-1사실 아직 만들고 싶은 프로젝트는 생각안해봤다.다만 프로젝트를 해봐야 실력이 정말 늘 것 같아서 일단 대중적이고 레퍼런스 자료가devhan.tistory.com 이전 게시글에서 스프링 시큐리티를 통과하는 단순한 로그인 기능을 구현했다. 문제점은 DB를 조회해서 유효성 검사하는 기능까지는 다 됐지만 로그인 이후에 인증이 필요한 페이지에 접속하면 접속이 안되는 문제가 있었다.왜냐면 스프링 시큐리티에 이 사용자는 인증된 사용자임을 모르기 때문이다. 즉, 인증 상태가 유지되지 않는다.이번에는 http header에 Authorization 인증 정보를 추가해서 인..
[토이 프로젝트] spring boot 회원가입 기능 만들기-1
·
프로젝트 및 컨퍼런스 회고/프로젝트
사실 아직 만들고 싶은 프로젝트는 생각안해봤다.다만 프로젝트를 해봐야 실력이 정말 늘 것 같아서 일단 대중적이고 레퍼런스 자료가 제일 많은커뮤니티 사이트를 만들어보려한다. 환경은 일단 간단하게만 생각해봤다.spring boot 3.4.2JPAMySQLThymeleaf -> react(욕심) 리액트를 예~전에 한 번 쓰윽 봤었으나 전혀 기억이 안나서 백지랑 똑같다.일단 빨리 끝내는게 목표니 서버쪽을 Thymeleaf로 후다닥 만들고 리액트와 Next.js를 좀 배워서 화면쪽을 바꿔 볼 생각이다. 뭐 생각은 일단 그렇다. 아무튼.. 얼른 시작!스프링 프로젝트는 아래와 같이 만들었다.프로젝트를 여러 번 만들어봤지만 제일 떨리는 순간은 Generate 버튼을 누를 때!깃 레포도 하나 만들어줬다. 클론 후 git..
프로그래머스_문자열 나누기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이번 문제는 2주차 마지막 문제.. '문자열 나누기'다.그래도 마지막 문젠데.. 생각보다 쉬워서 놀라버리기챗GPT.... 커리큘럼 잘 못짜는구나? 어찌됐든 푼다! 코드class Solution { public int solution(String s) { int answer = 0; int same = 1; int notSame = 0; char targetChar = s.charAt(0); if(s.length() == 1) return 1; for..
프로그래머스_최빈값 구하기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이번에 풀 문제는 '최빈값'이다.새롭게 푸는 문제라 과거 코드는 없다.이번 문제는 짧고 요구사항이 정확해서 마음에 들었다. 코드import java.util.*;class Solution { public int solution(int[] array) { int answer = -1; Map map = new HashMap(); for(int i = 0; i entry : map.entrySet()) { Integer key = entry.getKey(); In..
프로그래머스_예산 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이번에 풀 문제는 '예산'이다.과거에 풀었던 문제라 과거 코드가 남아있었다. 과거 코드import java.util.*;class Solution { public int solution(int[] d, int budget) { int answer = 0; Arrays.sort(d); if(d[0] > budget) return 0; for(int i = 0; i = d[i]) { budget -= d[i]; ..
프로그래머스_기능개발 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 원래 3차원 어쩌구 문제가 있었는데 프로그래머스 안에서 검색해보니 나오질 않아서 최신 문제들로 다시 추천해달라고 했다.그래서 오늘 풀 문제는 '기능개발'이다. 이번 문제는 처음 풀어보는 문제였다. 그래서 과거 코드는 없다.문제를 읽었을 땐 문제에서 뭔가 강조하는 것 같았던 '작업 일수'는 별로 신경 안 써도 될 거 같았는데..아니 문제를 풀다보니깐 '작업 일수'가 되게 중요한 거였다..!역시 문제에 나오는 내용은 허튼 것이 없다. 코드import java.util.*;class Solution { public List solution(int[] pro..
프로그래머스_두 개 뽑아서 더하기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이번에 풀 문제는 '두 개 뽑아서 더하기'다.과거에 풀었던 문제라 과거 코드가 남아있다.근데 진짜 푼 기억이 없는데 도대체 뭐지;;대충 풀고 베꼈을ㄲ..ㅏ? 과거 코드import java.util.*;class Solution { public TreeSet solution(int[] numbers) { TreeSet answer = new TreeSet(); for(int i = 0; i 과거에는  TreeSet의 자료구조로 문제를 풀었다. 현재 코드 - 중간import java.util.*;class Solut..
프로그래머스_체육복 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이번에 풀 문제는 '체육복'이다.이미 과거에 풀었던 문제라 과거 코드가 남아있다. 과거 코드import java.util.*;class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = n - lost.length; List list = new ArrayList(); for(int l : reserve) { list.add(l); } f..
프로그래머스_같은 숫자는 싫어 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이번 문제는 '같은 숫자는 싫어'다.이 문제는 풀었던 문제라 과거 코드가 남아있었다. 과거 코드import java.util.*;public class Solution { public List solution(int []arr) { List list = new ArrayList(); int temp = -1; for(int n : arr) { if(temp != n) list.add(n); temp = n; } return..
프로그래머스_프로세스 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 오늘 풀어볼 문제는 '프린터'였지만 프로그래머스에서 아무리 찾아봐도 안나와서챗GPT한테 물어보니 프린터 문제가 프로세스로 바뀌었단다.... 챗GPT를 너무 맹신하면 안 된다.휴 내 발등을 한 두번 찍는게 아니란 말이지.아무튼 이번 문제는 처음 풀어보는 문제다. 그래서 과거 코드가 없다.이번에는 Deque를 사용했다. 영한쓰가 자바 강의에서 stack과 queue보다는 Deque를 사용하라했다.자세한 내용은 기억이 안나서 챗GPT한테 물어봤더니1. 단순한 큐 동작만 필요하면 Queue가 빠름2. 양방향 삽입/삭제가 필요한 경우라면 Deque 사용이 더 유리함..
프로그래머스_다리를 지나는 트럭 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이번 문제는 ‘다리를 지나는 트럭’이다. 처음 푸는 문제라 과거 코드는 없다.스택과 큐 휴휴 많이 안써봐서 잘 풀릴지 모르겠다그래도 일단 도전!코드import java.util.*;class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { Queue bridge = new LinkedList(); int currentWeight = 0; int time = 0; int index =..
프로그래머스_올바른 괄호 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이번 문제는 처음보는 새로운 문제!그래서 좀 더 시간이 오래 걸렸다.맨 처음에 문제를 보자마자 음! 정규식을 풀면 쉽겠다 해서 아래 코드를 작성했다.1차 코드class Solution { boolean solution(String s) { String target = "()"; while(s.contains(target)) { if(s.charAt(0) == ')') return false; s = s.replaceAll("\\(\\)", ""); } return ..
프로그래머스_3진법 뒤집기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이번에 풀 문제는 ‘3진법 뒤집기’다.이 문제 역시 과거에 풀었던 문제라 과거 코드가 남아있다.새로운 문제를,,,풀고싶다!그나저나 쉬운건 진짜 열심히 풀었나보다 거의 다 풀어져있네 ㄷㄷ과거 코드class Solution { public int solution(int n) { int answer = 0; StringBuffer sb = new StringBuffer(Integer.toString(n, 3)); sb.reverse(); answer = Integer.parseInt(sb.toString(),..
프로그래머스_짝수와 홀수 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이번 문제는 ‘짝수와 홀수’ 문제다.이번에도 풀었떤 문제라 과거 코드가 남아있었다.과거 코드class Solution { public String solution(int num) { if(num % 2 == 0) return "Even"; else return "Odd"; }}현재 코드class Solution { public String solution(int num) { return num % 2 == 0 ? "Even" : "Odd"; }}if문을 삼항연산자로 바꿔주었다.이번 문제는 매우 쉬웠다..
프로그래머스_핸드폰 번호 가리기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이번 문제는 '핸드폰 번호 가리기' 문제다.과거에 풀었던 문제라 과거 코드가 남아있었다. 과거 코드class Solution { public String solution(String phone_number) { String answer = ""; int len = phone_number.length(); int numberLen = len - 4; answer = phone_number.substring(0, numberLen); String number = phone_num..