본문 바로가기

분류 전체보기

(396)
[DB]RDBMS에서의 특정테이블이 배열을 필드로 가질때, 그밖의 테이블간 관계 설정 일반적으로 관계형 데이터베이스(RDBMS)에서는 하나의 필드에 객체, 배열 혹은 JSON형태의 데이터가 들어갈 수 없다. 예를 들어 설명 하자면 board라는 테이블을 만들려고 하는데 board테이블은 boardNumber, title, content, boardTitleImage, boardImageList, writeDatetime, favoriteCount, commentCount, viewCount, writerEmail, writeNickname, writerProfileImage 와 같은 필드들로 구성이 된다. 이중 boardImageList는 배열인데 RDBMS에서는 필드에 배열형식이 들어갈 수 없다는 것이다. 이 문제에 대한 해결책이 ORM 그리고 관계를 지어서 새로운 테이블을 하난더 파생..
Rest API란? Rest API와 HTTP의 관계는? 참고: https://www.youtube.com/watch?v=fB3MB8TXNXM참고: https://docs.google.com/document/d/1yAr2U4ZY_7Cowvmd82JDYjSNXP34_ZDx-V0UOg9sIcg/edit참고: https://www.youtube.com/watch?v=iOueE9AXDQQ참고: https://kmkunk.tistory.com/139   (RESET API설계 원칙)REST API란? REST API(=RESTful API, Representational State Transfer API). REST아키텍처 스타일을 따르는 API로 대표적으로 HTTP가 있다. REST란? 웹(분산 하이퍼미디어 시스템)을 위한 아키텍처 스타일. 아키텍처 스타일이란? 제약..
Filter란 무엇인가? Filter(필터)란? 바로 Controller로 들어가지 않고 Filter를 먼저거쳐 서버로직을 타고 Filter를 통과하지 못하면(검증되지 않으면) 아예 Controller는 거치지도 못하고 그냥 return 해버리게 하는 것. 즉, Filter를 거친것들만 Controller에서 작업하게 두는 것. 이번 프로젝트 같은 경우 Filter에서 JWT검증처리를 합니다.  검증을 하여 JWT의 payload에 들어있는 사용자정보인 이메일을 꺼내오게 됩니다. 그 이메일을 Controller에서 사용하게 되는데 필터에서 컨트롤러로 바로 넘겨줄 수는 없고 외부의 context라는 공간에 담아두고 필요할때 언제든 사용할수 있게 해줍니다. 아래는 프로젝트의 Filter가 구현된 JwtAuthenticationFil..
java.sql.SQLException: Access denied for user 'dhflekddy'@'localhost' (using password: YES) 정말 흔하디 흔한, 구글링하면 자료가 넘쳐나는 그런 에러다. 그런데 내 문제해결에는 전부 관련없는 글들 뿐이었다. 왜 웹에서는 단서를 찾을 수 없었나? 단순한 오타가 그 원인이었다. dhflekddy는 내게도 너무 익숙한 아이디 지만 cmd로 mysql에 아래와 같이 들어가보아도 dhflekddy라는 user는 내가 만든적이 없었다. 이렇게 뜬금없지만 매우 익숙한 dhflekddy라는 것은 사실 DB와는 관련없는 내 컴퓨터의 관리자 이름일 것이다.... =========================================================================================위와 별개로 하나더 언급하자면 이번에 프로젝트를 하면서 처음으로 intelliJ가 아닌 VSCo..
HTTP의 인증방식에 대하여(Basic Authentication, Bearer Token Authentication, OAuth) 출처: https://www.youtube.com/watch?v=USu2W2N1Q4Q&list=PLbq5jHjpmq7q-Td2jOXtpf7SD5c53RqXh&index=9  좋은 글: https://engineerinsight.tistory.com/69   정말 좋은 글:  https://engineerinsight.tistory.com/163어떠한 내가 모르는 내용이 나왔을때 그것을 처음부터 검색해 보려하면 한숨부터 나오고 힘들다는 감정이 생기는 것 자체가 잘못된 방향으로 가고 있는 것이다. 그럴 때는 잠시 리프레쉬하는 시간을 가지고 다시 시작해야 한다. 잠시 쉬라는 것이다. 사실 유튜브영상의 이 내용을 쉬지 않고 익숙히 하기는 힘들었고 몇번의 리프레쉬 끝에 어떻게 하면 이렇게 접해보지 않은 정보를 찾..
JWT이해하기(JWT의 구조), 세션과 토큰의 차이점 출처: https://www.youtube.com/watch?v=JY6qEnGRXic&list=PL93mKxaRDidERCyMaobSLkvSPzYtIk0Ah&index=18  함께 읽으면 좋은 글: https://engineerinsight.tistory.com/279  ( JWT Token를 저장할 가장 안전한 곳은? Session Storage VS Local Storage VS Cookie)세션과 토큰의 차이점: https://velog.io/@ddangle/Session%EC%84%B8%EC%85%98%EA%B3%BC-Token%ED%86%A0%ED%81%B0%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%8A%94JWT(Jason Web Token)란? 클레임이라고 불리는 정보를 JSO..
JWT이해하기(RSA암호화 방식, RFC에 대하여) https://www.youtube.com/watch?v=edyjcg7_Lyc&list=PL93mKxaRDidERCyMaobSLkvSPzYtIk0Ah&index=16내가  정처기 공부하며 배운 것처럼 RSA암호화 방식은 양방향 암호화 방식중 비대칭 암호화 방식(공개키 암호화 방식)이다.  공개키 암호화 방식은 기존의 열쇠전달 문제와 인증 문제를 해결할 수 있다. 다음으로 아래와 같은 예를 보자. A가 B에게 "A가 C에게 1억을 송금했습니다"라는 내용을 보낼려고 한다. 이 메시지는 A의 개인키로 암호화한다. 그리고 이는 A의 개인키로 암호화 하였기 때문에 A의 공개키로 이것을 풀어 볼수 있다. 즉 공개키를 얼마든지 획득할 수 있는 해커가 이 내용을 얼마든지 가로챌수 있다는 것이다.여기서 중요한 개념이 개..
정처기 공부하는 중 배운 라우팅의 개념에 대해서 (구글 독스에서 가져옴. https://docs.google.com/document/d/1KBVZdJ3fyyTaVc-suASO7o4Oa-vh6bXh8HxVBFFXWW4/edit )라우팅이란? 패킷 전송을 위해 송신측에서 목적지까지 최적 경로를 탐색하고 정해진 경로를 따라 패킷을 전달하는 일련의 과정(라우팅 알고리즘, 라우팅 프로토콜 분별없이 사용한다. 같은 의미임) 라우팅 알고리즘에는 관리자가 직접 라우팅 테이블을 설정(경로 정보를 라우터에 미리 저장)하는 정적 라우팅, 알고리즘과 라우팅 정보변화에 능동적으로 대처(라우터의 경로정보가 네트워크 상황에 따라 동적으로 변화)하는 동적 라우팅 알고리즘이 있다(사설망에서 정적 라우팅을 쓰고 공용망에서 동적 라우팅을 씀. 즉 정보사와 같은 네트워크 범위가 소규모이..