backend(11)
-
SpringBoot + Next.js 프로젝트 회고
이 글에서는 전 회사에서 Next.js + SpringBoot + JPA 로 진행하는 프로젝트를 개발해 가면서 몰랐던 새로 알게되는 전반적인 내용들을 기록하려 한다. 회사에서 진행하는 프로젝트이다 보니 예제코드는 example로 변경해서 기록되어 있기에 정확하지 않을 수 있다. 잘못된 설명이나 오타에 대한 피드백 감사합니다. 쿠키 발급이 안되는 문제 시나리오 기존에는 accessToken과 refreshToken을 localStorage에 보관했었다. 알고보니 token을 localStorage 같은 곳에 보관하면 확장프로그램이나 기타 XSS공격과 같은 심각한 보안문제가 발생한다고 한다. 결과적으로 refreshToken은 HTTP 세션에 보관하고 accessToken은 redux 같은 메모리에만 보관하..
2024.01.11 -
SpringBoot 공부하기 2편
리플렉션 모든 클래스의 정보는 JVM 안에 있는 클래스로더가 읽어와서 메모리의 어딘가에 두는 것이다. 클래스 로더가 읽어온 클래스 정보가 곧 거울에 비친 모습과 같은 것이다. 이런 정보를 가지고 여러가지 여러가지 행동을 할 수 있다 예를들어 어노테이션이 붙어 있으면 특정 행위를 실행 한다거나 테스트를 할 때 추가 행위를 한다거나 특정 네이밍을 검색해 치환 한다거나 모두 리플렉션 덕분에 가능한 행위다. 무긍무진하게 활용될 수 있다. // 클래스 정보를 가져온다. (레퍼런스를 가져온다) Class aClass = Class.forName("me.whiteship.hello.ChineseHelloService"); // constructor를 가져온다. aClass에서 바로 newInstance()를 사용하지..
2024.01.09 -
Fish Shell 설치 및 사용법 배우기
Fish Shell 설치하기 공식사이트 fish 쉘 rc 파일 # fish shell rc 파일 위치 ~/.config/fish/config.fish 설치하기 # ubuntu sudo apt-get install fish # mac brew install fish 1. fish shell 다운로드 -> https://fishshell.com/ 여기서 설치 2. curl -k -L https://get.oh-my.fish | fish -> oh my fish 설치, oh my fish가 일종의 fish shell theme 3. omf install robbyrussell -> omf 에서 robbyrussell라는 테마 다운로드 4. omf theme robbyrussell -> omf 의 robbyru..
2023.12.29 -
HTTP 공부하기
참고 및 추천 자료 HTTP 완벽 가이드 김영한 - 모든 개발자를 위한 HTTP 웹 기본 지식 왜 HTTP를 공부해야 하는가 요즘 웹에서는 모든것이 HTTP 프로토콜 위에서 동작한다. 앱과 서버가 통신하거나 서버와 서버가 통신하거나 이미지나 HTML, 영상, 기타파일 등등 모두 HTTP로 주고 받기 때문에 백엔드와 프론트개발자 모두 HTTP에 대한 이해가 필요하다. HTTP를 제대로 이해하지 못한 상태에서 그냥 개발 경험을 쌓다보면 여러 오류를 만나게 될 것이다, HTTP를 이해하는것이 나중에 다른 개발 경험을 하는데에도 큰 도움이 된다. 특히 백엔드 개발자라면 HTTP에 대한 이해가 있어야 REST API를 설계하는데 중요한 지식이 된다. 웹 개발자라면 계속해서 HTTP 위에서 개발을 해야한다. 집 주..
2023.12.28 -
multer - 파일 업로드 관리 (Node.js)
multer란 multer는 파일 업로드를 위해 사용되는 multipart/form-data 를 다루기 위한 node.js 의 미들웨어 이다. 효율성을 최대화 하기 위해 busboy 를 기반으로 하고 있습니다 multer는 multipart (multipart/form-data)가 아닌 폼에서는 사용할 수 없다. 파일 업로드 구현하기 설치하기 npm install --save multer passport 모듈을 다운로드 받는다. Multer 사용하기 const multer = require('multer'); const upload = multer({ storage: multer.diskStorage({ destination(req, file, cb){ // 파일이 저장될 경로, cb = callback..
2023.11.18