Latest

Lombok 에 대한 짧은 생각

Lombok 에 대한 짧은 생각

최근 Java / Spring 으로 스택을 변경하면서 작은 프로젝트를 하고 있다. 팀원의 추천으로 lombok 이라는 라이브러리를 사용하게 되었다. Lombok 을 쓰면 정말 간단하다. Getter, Setter, Constructor, equals, hashCode 과 같이 작성해야하지만 작성에 피로를 느끼는 코드들을 annotation을 통해서 너무 쉽게 만들 수 있다. 그런데, 이 라이브러리 사용할수록 필요성에 대한 의문이 생긴다. 생각을

By Sungjun Park
인증 인가 정보는 어디에 담아야할까? (cookie? authentication header?)

인증 인가 정보는 어디에 담아야할까? (cookie? authentication header?)

인증 인가 정보 전달 방법의 결정 요구사항 * HTTP 표준에 부합해야한다. * 보안 이슈를 최소화해야한다. * 클라이언트에서도 처리가 간편해야한다. * 모든 HTTP request 에서 처리 가능해야한다. * JWT, Session 모두 고려해야한다. 고려대상 Request Body * Request Body 에 auth 정보를 싣어 보내는 방법의 경우 GET HEAD DELETE TRACE 와 같은 HTTP Method 에서 사용할 수 없다.

By Sungjun Park
인증 인가의 상태 코드 반환은 어떻게 해야할까?

인증 인가의 상태 코드 반환은 어떻게 해야할까?

인증 인가와 상태 반환 코드 요구사항 * HTTP 표준과 부합해야한다. * Client 입장에서 처리하기 편리해야한다. * 보안을 고려해야한다. 고려대상 * 인증에 실패할 경우 항상 401 (Unauthorized) * 상황에 따른 HTTP Status code * 인증 정보가 있는 경우 * 성공 * 실패 * 잘못된 정보로 인증 하는 경우 * 유효한 인증이나 접근이 불가능 한 경우 * 403 ? 404 ? * 인증 정보가 없는 경우

By Sungjun Park
Java + Spring 에서 NestJS Style Auth Guard 만들기

Java + Spring 에서 NestJS Style Auth Guard 만들기

PassportJava * 새로운 프로젝트에서 인증, 인가 과정에 Spring Security 를 사용하는 것이 적합하다는 의사결정을 내리기는 했으나, NestJS 를 통해 백엔드를 구현했던 입장에서는 Spring Security의 사용에 다소 불편함이 있었다. 때문에, Java + Spring 에서 NestJS Style (AuthGuard + Passport.js) 으로 인증 / 인가 프레임워크를 제작해보고 Spring Security 와의 장단점을 비교해보고자 했다. * 내가 구현하고자 하는

By Sungjun Park
Ghost 블로그 이전 과정 기록

Ghost 블로그 이전 과정 기록

옮기게 된 스토리... 꽤 어린 시절부터 블로그를 했었다. 햇수로 치면 15년 정도 되는 것 같은데, 약 3~5년 정도의 주기로 이번처럼 새로운 플랫폼에서 새로운 시작을 하곤 한다. 이전 블로그는 티스토리에서 https://photogrammers.tistory.com 으로 운영하고 있었고, 개발자의 길로 접어든 때에 시작을 했던 블로그이다. 티스토리 블로그는 큰 목적성을 두고 만든

By Sungjun Park
InfluxDB + Grafana를 통해 Proxmox Host CPU 온도 모니터링 시각화 및 알림 구축

InfluxDB + Grafana를 통해 Proxmox Host CPU 온도 모니터링 시각화 및 알림 구축

Influx DB 와 Grafana 를 통해서 Proxmox 를 모니터링 할 수 있도록 구성했습니다. 기본적으로 제공하는 데이터 이외에도, CPU 온도에 대한 패널을 추가하고 telegram을 통해 알림을 설정하는 과정까지를 담았습니다. Proxmox 모니터링하기 우선, InfluxDB + Grafana 를 통해서 Proxmox 모니터링은 아래 사이트를 따라가시면 쉽게 해결하실 수 있습니다. 서버포럼 - InfluxDB 및 Grafana로 Proxmox

By Sungjun Park
홈서버 구축기  - 서버 구입 및 초기 설정

홈서버 구축기 - 서버 구입 및 초기 설정

언젠가 만들어봐야지.. 하고 마음 먹었던 홈서버. 드디어 구축을 했습니다. Host PC 구매부터 Proxmox 를 통한 가상화까지의 과정을 담았습니다. (티스토리에서 나눠져있던 글을 통합함) 홈서버 구축하기 나는 왜 서버를 구축하게 되었나. 어린 시절부터 나는 "나만의 서버"가 갖고 싶었다. 최근에는 클라우드를 간편하게 사용할 수 있게 되면서 그 필요성이 낮아지고 있지만

By Sungjun Park
내 Ghost blog는 왜 느릴까? - (1)

내 Ghost blog는 왜 느릴까? - (1)

Ghost 블로그로 옮기고 이상한 문제를 발견했다. 블로그가 너무 느리다는 것. 내 블로그는 대체 왜 느린걸까? 하나 하나 짚어가며 해결하는 과정을 기록해보았다. 문제 상황 일단 속도 저하를 크게 두 가지 경우로 나눌 수 있었다. 문제상황 1 - 첫 로드 상황 특정 페이지에 완전히 첫 접근하는 경우에 문제가 발생했다. 한 포스팅 혹은

By Sungjun Park
이병국의 개발자를 위한 DB 이야기

이병국의 개발자를 위한 DB 이야기

학습을 하던 와중 좋은 DB 시리즈가 있었다. 해당 글에 걸린 링크가 사용하지 못하는 상태라서 따로 링크를 뽑아서 유효한 링크로 정리해뒀다. 물탱크 구조로 알아본 오라클의 블록 옵션 ‘PCTFREE와 PCTUSED’ 이산가족 찾기 생방송을 통해 배우는 DB 원리 개발자에게 맞는 DB 공부방법 찾기: 물리적 분류와 논리적 분류 그리고 인덱스 데이터베이스 인덱스의 오해와 진실

By Sungjun Park
Deep dive into malloc

Deep dive into malloc

malloc 은 어떻게 작동하는 것일까요? malloc을 직접 만들어보면서 작성한 글입니다. 서론 메모리는 컴퓨터 시스템의 가장 핵심적인 자원 중 하나로, 이를 효과적으로 관리하는 것은 프로그램의 성능과 안정성에 결정적인 영향을 미칩니다. 메모리 관리의 중요성에 대해 대부분의 프로그래머들은 인지하고 있지만, 그 뒤에 숨겨진 복잡한 메커니즘들을 완전히 이해하는 것은 쉬운 일이 아닙니다. 이 글을

By Sungjun Park