본문 바로가기

분류 전체보기

(401)
인증 관련) Spring Security에서의 인증관련 Configuration 설정, AuthenticationEntryPoint에 대하여 도움: https://kimchanjung.github.io/programming/2020/07/02/spring-security-02 ==> Spring Security에 대한 유용한 짧은 글(Security와 관련된 각종 중요 메서드와 커스텀 필터를 등록하는 방법 설명). 요약: Spring Security의 각종설정은 HttpSecurity를 이용하여 한다.  설정의 세부 내용이 방대하기 때문에 공식 문서를 참고해야함.  내가 만들어 놓은 API명세서를 보면서 별도로 인증이 필요하지 않은 URL요청을 모두 antMatchers()의 매개변수에 넣어준다. 우선 Auth와 관련된 API요청에서는 인증이 따로 필요하지 않다. Auth를 해야하는 페이지이기 때문에 그런것 같음ㅋㅋ 다음으로 Board영역 으..
Front-end 폴더구조 apis: 백엔드와 연관되는 api관리 asseets: 이미지나 비디오 파일 관리components: 공통 컴포넌트관리costants: 상수들hooks: 훅함수layouts: Header, Footermocks: 쓸일은 없지만 일단 만듬stores: 전역상태 관리(전역상태변수를 관리하는 영역으로 여기서는 SWR대신 ZUSTAND를 사용한다)types: 각종 type관리utils: 각종 utilsviews: 페이지와 관련된 파일 관리
DML(2) 어떤 것을 참고 하여 DML쿼리를 작성해야 하나? VIEW작성? "게시물 작성" 에서는 API명세서보다는 게시물 작성시 board테이블안에 하나의 board인스턴스가 생성되는 것이기 때문에 데이터베이스의 DDL을 보고 DML를 구성해 주었다. 하지만 게시물 상세 같은 경우는 DDL의 특정 테이블을 보는 것이 아닌 클라이언트가 서버로부터 Response받는 내용물들에 모든 정보가 있는 것이니 API명세서를 보는 것이다. RESPONSE의 내용은 아래와 같다. 따라서 이러한 내용들을 얻을 수 있게 DML을 구성해 주어야 하고 board와 user테이블을 조인하면 아래의 데이터들을 얻을 수 있다.다만 '게시물 이미지 리스트' 같은 경우는 user와 board테이블을 조인해도 얻을 수 없으니 image테이블에서 별도로 가져 온 것이 '상세 게시물 불러오기'의 DML쿼리 였다..
DML 작성 FRONT에서 데이터를 입력하여 이것을 서버에 반영하고 싶거나 데이터를 불러올때 DML이 필요한데 이때 DML을 작성하는데 있어 단순히 만들어놓은 API명세서만을 보고 DML을 작성하는 것이 아니라 작성해놓은 DDL의 생성된 테이블을 참고하여 하나의 테이블에 넣을 하나의 튜플(인스턴스)을 만들기 위해 어떤정보를 DML에 넣을 것인지를 판단해준다. 클라이언트에서 REQUEST를 보내면서 BODY에 실어보내는 정보 뿐만이 아니라 서버 자체에서 얻을 수 있는 정보는 REQUEST의 BODY에 포함되어 오지 않기 때문에(이말 맞는 말임????) DDL에 정의된 테이블의 필드를 살피는 것이다. 예를들어 API명세서에 '게시물 작성' 이라는 기능이 있는데 게시물을 작성하기 위해 어떤 정보가 필요한지는 서버 자체에서..
[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..