POPULAR

java

[Java] AES256 암호화 Util

오늘은 프로젝트 하면서 AES256 Util을 작성했던 내용을 정리해보려고 한다. 우리 프로젝트에는 익명 게시판이 있었는데, 프론트로 response를 보낼 때 사용자의 Id(DB상의 Id)가 노출되지 않도록 이를 암호화해서 보내기로 했다. 프론트에서 이후에 다른 요청을 보낼 때 이 암호화된 Id를 다시 request로 사용하므로, 백엔드 서버에서는 해당 Id를 복호화할 수 있어야 했다. 그래서 우리는 양방향 암호화를 선택했고, 암호화와 복호화 모두 백엔드 서버에서 이루어지므로 대칭키를 사용하는 AES-256 알고리즘을 사용하기로 했다. 또한, 우리는 익명 게시판에서 특정 사용자가 여러 개의 게시글을 작성했을 경우, 프론트단에서 동일한 사용자가 작성한 게시글임을 알 수 없도록 할 필요가 있었다. 마지막으..

aws

AWS ECR (Elastic Container Registry) 사용법

오늘은 ASC 2주차 세션에서 배운 ECR 핸즈온 실습 내용을 정리해보려고 한다. 실습을 들어가기에 앞서 ECR이 무엇인지 알아보자! 📌 Elastic Container Registry란? Amazon ECR은 AWS 관리형 Container image registry service로, 도커 이미지, Open Container Initiative(OCI) 이미지 및 호환 아티팩트를 push, pull 및 관리할 수 있는 서비스이다. AWS IAM을 사용해 리소스 기반 권한으로 프라이빗 컨테이너 이미지 레포지토리를 지원하므로 지정된 사용자 또는 Amazon EC2 인스턴스가 컨테이너 레포지토리 및 이미지에 액세스할 수 있다. 비용은 글 작성 시점 기준으로 프리티어는 월 500MB까지 무료이고, 프리티어 한..

springboot

[SpringBoot] Custom Validator 사용하기

오늘은 Custom Validator 사용 방법을 정리해보려고 한다! 사이드 프로젝트를 진행하면서 spring validation 라이브러리에서 지원해주지 않는 유효성 검증이 필요한 상황이 있었다. (( 상황 설명을 잠깐 해보자면,, 게시글 내용을 @Size를 사용해서 최대 3000자까지 입력할 수 있도록 제한해 두었는데, 줄바꿈이 CRLF로 들어와서 문자열 길이가 2로 잡히는 문제가 있었다. (포스트맨으로 요청을 보내면 LF로 오는 것 같은데, 프론트에서 요청을 보내면 CRLF로 들어오는 것 같았다🤔) 그래서 팀원들과 논의해본 후.. Custom Validator로 "\r"(CR)을 ""로 바꾸고 문자열 길이를 검증하기로 했다. 뭔가 Custom Validator를 사용하는 것보다 더 좋은 방법이 있었..

RECENT

java

[Java] AES256 암호화 Util

오늘은 프로젝트 하면서 AES256 Util을 작성했던 내용을 정리해보려고 한다. 우리 프로젝트에는 익명 게시판이 있었는데, 프론트로 response를 보낼 때 사용자의 Id(DB상의 Id)가 노출되지 않도록 이를 암호화해서 보내기로 했다. 프론트에서 이후에 다른 요청을 보낼 때 이 암호화된 Id를 다시 request로 사용하므로, 백엔드 서버에서는 해당 Id를 복호화할 수 있어야 했다. 그래서 우리는 양방향 암호화를 선택했고, 암호화와 복호화 모두 백엔드 서버에서 이루어지므로 대칭키를 사용하는 AES-256 알고리즘을 사용하기로 했다. 또한, 우리는 익명 게시판에서 특정 사용자가 여러 개의 게시글을 작성했을 경우, 프론트단에서 동일한 사용자가 작성한 게시글임을 알 수 없도록 할 필요가 있었다. 마지막으..

network

프록시 서버란?

프록시 서버란 무엇일까? 여기저기서 주워듣긴 했는데 정확히 무슨 역할을 하는지 궁금했었다! 그래서 오늘은 프록시 서버에 대해서 정리해보려고 한다 🥸 프록시 서버란? 프록시 서버(proxy server)는 클라이언트가 자신을 거쳐 다른 네트워크에 접속할 수 있도록 중간에서 대리해주는 서버를 말한다. (클라이언트와 서버 사이에서 통신을 대리로 수행하는 행위 자체를 프록시라고 한다.) 프록시 서버는 네트워크 상 어디에 위치하느냐, 혹은 어느 방향으로 데이터를 제공하느냐에 따라 크게 포워드 프록시 서버(forward proxy server)와 리버스 프록시 서버(reverse proxy server)로 나뉜다. 포워드 프록시 서버 우리가 흔히 말하는 프록시 서버는 포워드 프록시 서버를 의미한다. 클라이언트에서 ..

aws

AWS RDS, Aurora, Aurora Serverless 비교

RDS AWS RDS AWS에서 제공하는 관계형 데이터베이스 서비스이다. RDS 내에서 데이터베이스 플랫폼은 EC2에서 수동으로 수행하는 것처럼 구축된다. EC2 인스턴스는 적절한 AMI에서 프로비저닝되고, EBS 스토리지는 프로비저닝된 인스턴스에 연결된다. 그리고 적절한 서브넷 그룹과 보안 그룹이 인스턴스에 연결되는 구조이다. 프로비저닝되면 RDS는 백업/복원 및 패치가 모두 자동으로 처리되어 플랫폼 유지관리가 자동으로 이루어진다. AWS RDS MySQL의 특징 트랜잭션 로그 및 데이터베이스 데이터 파일은 로컬 EBS 스토리지 볼륨 사용 데이터베이스의 모든 커밋된 트랜잭션 I/O는 WAL(Write-Ahead Log)라고 하는 전후 이미지가 있는 로그 레코드를 생성한 후 지속가능한 스토리지로 저장 체..

test

[이펙티브 소프트웨어 테스팅] CHAPTER 2 - 명세 기반 테스트

명세 기반 테스트 기법은 프로그램의 요구사항 자체에서 테스트를 도출하는 것으로, 개발자가 기능 개발을 마치고 테스트를 시작할 때 가장 먼저 접근하기 좋은 기법이다. 이번 장에서는 명세 기반 테스트 기법을 적용해 테스트 케이스를 작성하는 방법을 다룬다. 요구사항에서 테스트 케이스 뽑아내기 요구사항과 입출력에 대해 이해하기 무엇을 수행해야 하는지 확인 입력값 확인 출력값 확인 여러 입력값에 대해 프로그램이 수행하는 바를 탐색하기 직접 작성하지 않은 코드인 경우 더욱 필요한 단계이다. 테스트 가능한 입출력과 구획을 탐색하기 각 입력 매개변수의 가능한 케이스(=구획) 찾기 입력 매개변수들의 가능한 조합 찾기 출력값의 가능한 케이스 찾기 (전체 출력, 각 개별 출력 모두 확인하기!) 예를 들면, 문자열 배열을 출..

springboot

[SpringBoot] Custom Validator 사용하기

오늘은 Custom Validator 사용 방법을 정리해보려고 한다! 사이드 프로젝트를 진행하면서 spring validation 라이브러리에서 지원해주지 않는 유효성 검증이 필요한 상황이 있었다. (( 상황 설명을 잠깐 해보자면,, 게시글 내용을 @Size를 사용해서 최대 3000자까지 입력할 수 있도록 제한해 두었는데, 줄바꿈이 CRLF로 들어와서 문자열 길이가 2로 잡히는 문제가 있었다. (포스트맨으로 요청을 보내면 LF로 오는 것 같은데, 프론트에서 요청을 보내면 CRLF로 들어오는 것 같았다🤔) 그래서 팀원들과 논의해본 후.. Custom Validator로 "\r"(CR)을 ""로 바꾸고 문자열 길이를 검증하기로 했다. 뭔가 Custom Validator를 사용하는 것보다 더 좋은 방법이 있었..

norgb
main()