분류 전체보기 177

인증과 인가 / 쿠키와 세션 / 토큰과 JWT 이란 ?

웹서비스를 만들기위해서는 로그인 기능이 거의 필수적이다. 로그인 기능이 있어야 사용자에게 맞춤형으로 응답을 보낸다.  그렇다면 사용자로부터 인증을 받아야하는데,이때 쿠키와 세션이 쓰인다.  이번 포스팅에서 쿠키와 세션, 그리고 토큰 추가로 JWT에 대해 알아보고, 간단히 파이썬으로 구현해본다. 인증 (Authetication) : 사용자의 신원을 검증인가 (Authorization) : 인증 이후 프로세스로, 인증된 유저가 어떠한 자원에 접근할 수 있는지 확인 사용자가 로그인을 인증하면 → (인증) 서버측에서 쿠키를 주던가 세션 ID를 저장한다. →  (인가)  🔖 웹 어플리케이션 인증의 특수성비연결성 (Connectionless):서버와 클라이언트는 연결되어 있지 않고, 리소스 절약을 위해 서버는 하..

CS 2024.09.06

크래프톤 정글 7기 1일차 (프로젝트 시작,실시간 채팅,socket IO)

✨ 정글 1일차2024년 9월 2일 크래프톤 정글 프로그램이 시작했다.  아침 일찍 일어나 출발 준비를 했고, 대중교통을 이용해서 약 3시간만에 경기대에 도착을 하게되었다. (캐리어 바퀴가 고장나고, 손잡이도 고장나고 ;;) 다행히도 12시 전까지 도착을 하였고, 기숙사에서 코치님들이 반갑게 맞이해주셨다. 크래프톤 정글 마크가 보였는데, 왠지 모르게 뿌듯하다. 룸메이트 형과 인사를 하고 정신없게 입소식이 진행되었다. 입소식에 기억에 남는 말 - 어제의 나와 경쟁하자- 장기적으로 성장 할 수 있는 개발자  이번 프로그램을 하면서 마음속에 새길 것은, "어제의 나와 경쟁하자" 이다.  사실 좋은 말들을 정말 많이 해주셨는데, 노트북을 가져가지 않아서 좋은 말들을 많이 놓쳤다 ㅠㅠ  이후 강의실에 가고 바로 ..

크래프톤 정글 2024.09.03

SQLD 필수 개념 요약 정리 / 벼락치기, 독학, 요약본

SQL은 비절차적 언어로, 절차적 언어 (JAVE,C 등등)과는 다르다. SQLD에서 나오는 핵심 개념들은 요약정리 해보자 🐸(최소한 이것만은 외우고 가자는 마인드 !) 처음보는 용어이면, 익숙해지고한번 봤던 용어면 상기하며 외워보자🧐 빠르게 핵심만 공부해서 벼락치기로 합격까지 !! 📌모델링 1. 현실 세계 데이터를 약속된 표기법으로 표현2. 가시화, 명세화 필요 3. 데이터 분석하여 추상화 (단순화,요약) 모델링은 시스템 분석 + 업무 분석 + 업무 형상화 등을 위해 진행된다.또한 명칭은 복합명사를 사용하여 유일성을 확보한다. 📌모델링의 특징1. 추상화2. 단순화 3. 명확화   📌모델링 시 유의사항 1. 중복 최소화2. 비유연성 최소화 3. 비일관성 최소화 (중복,비유연성,비일관성 되게 하지..

SQL 2024.08.21

삼성 청년 SW 아카데미 (SSAFY, 싸피) 12기 전공자 불합격 후기

정신없는 6~8월이 흘러가고 있다. 싸피에 붙을줄 알았지만, 떨어져서 내가 생각했던 계획들이 많이 깨졌다.쓴다 쓴다했던 싸피 12기 후기를 이제서야 남긴다. 비록 불합격입지만, 다음 기수를 준비에 도움이 될 듯 한다.  내가 싸피를 준비하면서 얻은 정보들 기반으로 작성해서, 틀린 정보들이있을 수 있다는 점을 꼭 참고하자 ! 📌 SSAFY란 ? 먼저 싸피가 무엇인지에 대해 간단히 알아보자. Samsung Sofrtware Academy For Youth의 약자로, 삼성 그룸의 후원으로 진행이 된다.멀티캠퍼스라는 업체에서 이 교육을 위탁 받아 진행된다. (사실 멀티캠퍼스는 삼성이 소유하고 있으니, 삼성이 운영한다 보면 될 듯하다.) 싸피 지원은 만 29세 이하 4년제 대학 졸업자 및 졸업 예정자들 대상으로..

일상 2024.08.18

[Python][백준] 1932. 정수 삼각형/ DP (S2)

🔗링크 :   https://www.acmicpc.net/problem/1932🗒️파이썬 코드 풀이n=int(input())d=[]for i in range(n): d.append(list(map(int, input().split())))for i in range(1,n): for j in range(len(d[i])): if j==0: d[i][j]=d[i][j]+d[i-1][j] elif j==len(d[i])-1: d[i][j]=d[i][j]+d[i-1][j-1] else: d[i][j]=max(d[i-1][j-1],d[i-1][j])+d[i][j]print(max(d[n-1])) 1. 전형적인 DP 문제이다.  2. 반복문은 크게 2가지가 필요하..

[Python][백준] 1193. 분수찾기 / 구현 (S5)

🔗링크 :   https://www.acmicpc.net/problem/1193🗒️파이썬 코드 풀이N = int(input())count,line = 0,0while N > count + line : count = count + line line += 1if line%2 == 0: print(f"{N-count}/{line-(N-count)+1}")else: print(f"{line-(N-count)+1}/{(N-count)}") 1.  ↗  뱡향의 합이 일치하는 점을 염두한다.  2. 먼저 입력 받은 N의 줄(line)과 이전 줄의 끝 번호(count)를 알아낸다. 3. 각 줄이 짝수 or 홀수일 경우를 나눠서 출력해주면 된다. 단순히 (1) N(전체값) - 이전 줄의 끝 번호..

[Python][백준] 1149. 소수&팰린드롬 / 브루트포스, 에라토스테네스의 체 (S1)

🔗링크 :   https://www.acmicpc.net/problem/1747🗒️파이썬 코드 풀이N = int(input())lst = [0] * 2000000lst[0],lst[1] = 1,1count = 2 while count  1. 문제 내용은 깔끔하다. - 최소한의 시간 복잡도로 소수를 만들 수 있는지?- 팰린드롬을 구현 할 수 있는지 ? 2. 먼저 소수 리스트부터 만들어보자. 1. 넉넉하게 2,000,000 크기의 리스트를 만들어 준다.2. 예외 값인 0과 1의 값은 미리 채워준다.  (꼭 채워줘야함)3. count를 1씩 증가 시키며,  lst에서 count만큼의 인덱스 값이 0이면 해당 배수 1로 처리(count 값이 커질 수록 연산 기하급수적으로 감소) 3. 다음으로 팰린드롬은 간단..

[Python][백준] 1259. 팰린드롬수 / 구현,문자열 (B1)

🔗링크 :   https://www.acmicpc.net/problem/1259🗒️파이썬 코드 풀이while True: num = input() if num == "0": break if num == num[::-1]: print("yes") else: print("no") 1. 간단하게 [: : -1] 인덱싱으로 뒤집어 주면 된다.  2.펠린드롬이니까 꺼꾸로 한 값이랑 같으면 "yes" 그 외는 "no"를 출력하면 된다.  📌  문제 코멘트별로 어려운 문제는 아니다. 근데 가끔 [: : -1 ] 거꾸로 인덱싱 하는 방법을 까먹어서 포스팅 해봤다.  📚문제어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'ra..

[Python][백준] 1987. 알파벳 / 백트래킹,DFS (G4)

🔗링크 :   https://www.acmicpc.net/problem/1987🗒️파이썬 코드 풀이R,C = map(int,input().split())lst = []for i in range(R): tmp = list(input()) lst.append(tmp)di,dj = [0,1,0,-1],[1,0,-1,0]alphabet = [0] * 26alphabet[ord(lst[0][0])-65] = 1mx = 0def dfs(i,j,count): global mx mx = max(mx,count) for k in range(4): ni,nj = i+di[k],j+dj[k] if 0 1. BFS를 먼저 생각해보았지만, 알파벳 체크 부분이 안돼서 DFS..