전체 글 6

JWT(Json Web Token)이란?

이론을 공부하면 항상 금방 휘발되곤 해서, 크리스마스 연휴동안 Fast API를 공부하면서 배운 JWT에 대해 까먹기 전에 가볍게 기록하고자 해요.JWT의 특징JWT은 JSON 개체를 이용하여 두 개 이상의 주체 간에 데이터와 정보를 안전하게 전송하는 방법이에요.각 JWT는 디지털 서명이 되기 때문에 서버가 JWT의 수정(변경) 여부를 알 수 있기 때문에 신뢰성이 보장이 돼요.JWT는 기본 인증 메서드와 달리 클라이언트와 서버간의 지속적인 로그인 없이 관계를 유지할 수 있게 해줘요. JWT의 구조JWT는 크게 header, payload, signature 세 부분으로 구성되어 있으며, 각 부분은 dot(.)으로 구분돼요.{ HEADER }.{ PAYLOAD }.{ SIGNATURE } HeaderJWT..

Web 2025.01.01

2024 당근마켓 썸머테크 회고

갑분당(갑자기 분위기 당근)2024년 1학기를 대학 생활의 마지막 학기로 보내게 되었던 저는 이대로 재미없게 졸업하기엔 학비가 너무 아까웠기에 마지막 학기를 교환 학생을 갔었어요. 교환학생 도중 우연히 2024 당근마켓 썸머테크 공고를 보게 되었어요.항상 동경하던 당근이었지만 너무 준비가 안 되었기에 큰 기대 없이 지원해 봤어요. 제 포트폴리오가 서류 전형을 통과하기에 충분한지 궁금하기도 했고요. 큰 기대가 없었는데 너무 감사하게도 서류 전형에 합격했고 부랴부랴 인터뷰 전형을 준비했어요. 이제 저에게 주어진 시간은 3일이었죠. 하루는 제 포트폴리오와 관련하여 정리를 하고, 또 하루는 4년간 배운 전체 CS 복습, 마지막 하루는 다 죽어가던 코딩 테스트 실력 끌어올리기(?)로 3일을 정신없이 보냈어요. 인..

회고 2024.12.26

[FSDL] Pre-Lab 03: Transformers and Paragraphs

Why Transformers? 텍스트 인식기를 구축의 최종 목표는 2차원 이미지를 특정 알파벳의 1차원 문자 시퀀스로 변환하는 것이다. “lab 02b”에서 설명한 컨볼루션 신경망은 이미지를 인코딩하여 원시 픽셀 값에서 더 의미 있는 수치 표현으로 변환하는 데 매우 효과적이다. 하지만 다음과 같이 고려해야 할 사안이 존재한다. 이미지의 글자 수를 크기와 분리하는 부분 문서의 스크린샷 데이터는 종이를 클로즈업한 사진보다 글자 밀도가 훨씬 높다. 길이가 입력 텐서의 크기와 상관없어야 하는 가변 길이의 문자 시퀀스를 어떻게 얻을 것인가? 트랜스포머는 시퀀스 모델링에 탁월한 인코더-디코더 아키텍처로, 원래 기계 번역에서처럼 한 시퀀스를 다른 시퀀스로 변환하기 위해 도입되었다. ∴ 언어 처리에 매우 적합하다. ..

[FSDL] Pre-Lab 02b: Training a CNN on Synthetic Handwriting Data

Why convolutions? 가장 기본적인 신경망인 다층 퍼셉트론(MLP)은 파라미터화된 선형 변환과 비선형 변환을 번갈아 가며 구축한다. 이 조합은 고정된 크기의 배열을 받아들이고 고정된 크기의 배열을 반환하는 함수만 있다면 임의의 복잡도를 가진 함수를 표현할 수 있다. def any_function_you_can_imagine(x: torch.Tensor["A"]) -> torch.Tensor["B"]: return some_mlp_that_might_be_impractically_huge(x) 하지만 모든 함수에 해당 type signature가 있는 것은 아니다. 예를 들어, 크기가 다른 이미지의 콘텐츠를 식별하는 문제는 MLP로 해결할 수 없다. 더 큰 문제는 MLP가 너무 일반적이어서 효율..

[FSDL] Pre-Lab 02a: PyTorch Lightning

Why Lightning? PyTorch는 하드웨어 가속을 통해 미분 텐서 연산을 실행하는 강력한 라이브러리이며, 많은 신경망 primitives를 포함하고 있지만 "훈련"이라는 개념은 없다. 높은 수준에서 보면 nn.Module은 그라데이션이 있는 상태 저장 함수이고 torch.optim.Optimizer는 gradients을 사용하여 해당 상태를 업데이트할 수 있지만, 데이터에서 이러한 gradients을 반복적으로 생성하기 위한 사전 구축된 도구는 PyTorch에 없다. 그래서 우리는 "training loop"를 DataLoader를 반복함으로써 구현하였다. 그러나, 자체 DataLoader를 사용하여 validation 및 test 데이터에서 모델을 실행하고 싶을 것이다. 완료되면 모델을 저장해..

[FSDL] Pre-Lab 01: Deep Neural Networks in PyTorch

Getting data and making Tensors 모델을 구축하려면 먼저 데이터가 필요하다. 아래 코드는 파이썬 표준 라이브러리를 사용하여 인터넷에서 손으로 쓴 숫자로 구성된 MNIST 데이터셋을 다운로드한다. 데이터 너무 크기 때문에, 디스크에 저장하는 것이 아닌 네트워크를 통해 데이터를 가져오는 방식을 사용한다. from pathlib import Path import requests def download_mnist(path): url = "" filename = "mnist.pkl.gz" if not (path / filename).exists(): content = requests.get(url + filename).content (path / filename).open("wb").wri..

반응형