2024/12 11

Spring Security6를 활용한 인증 인가

문제 정의기존 인증 방식(세션)의 문제점은 서버가 상태를 유지해야 하며, 세션 데이터를 관리하는 데 많은 자원을 소모하여, Spring Security 6과 JWT 방식을 사용하여 확장성 있고 안전한 인증/인가 시스템을 구축하고자 했습니다. 선택 가능한 기술 분석항목세션 기반 인증JWT 기반 인증상태 관리서버에서 상태 관리(Stateful)클라이언트에서 상태 관리(Stateless)확장성서버와 세션 간의 동기화 필요서버에 상태 저장 X보안세션 ID 탈취 시 하이재킹 위험, 세션 고정 공격 위험토큰 탈취 시 위험성능서버가 세션 정보를 관리하므로 부하 발생 가능서버 부하 LOW, 대규모 트래픽 처리에 유리유지 관리서버가 세션 정보를 저장하므로 서버가 다운되면 세션 손실서버가 상태를 저장하지 않으므로 서버 ..

TIL 2024.12.27

Burp Suite 인터셉터를 활용한 웹사이트 보안 테스트

문제 정의웹 애플리케이션에서 OWASP Top 10 보안 취약점 중 SQL Injection과 XSS 취약점을 사전에 분석하고 이를 해결함으로써 보안 수준을 강화하고, 보안 위협을 예방하며 문제 발생 시 효과적으로 대응할 수 있는 시스템을 구축했습니다. Burp Suite란?Burp Suite는 웹 애플리케이션의 보안을 테스트하는 종합적인 취약점 스캐너이자 프록시 도구입니다. 웹 프록시, 웹 스파이더, 스캐너, 인트루더 등 다양한 도구를 포함하고 있으며, SQL 인젝션, XSS 등 다양한 취약점을 식별하는 데 도움을 줍니다. 테스트1. XSS 테스트Burp Suite의 Interceptor를 활용하여 OWASP Top 10에 포함된 보안 취약점 중 SQL Injection과 XSS에 대한 분석을 진행했습..

TIL 2024.12.27

Spring AOP와 예외처리를 활용한 로그 쌓기

문제 정의문제 발생 시 신속한 대처를 위한 서버에 요청되는 로그 관리 시스템 구축 선택 가능한 기술 분석기술설명장점단점ELK Stack(Elasticsearch, Logstash, Kibana)로그 데이터를 수집, 저장, 시각화하는 오픈 소스 스택실시간 로그 모니터링, 강력한 검색 기능, 대규모 로그 분석복잡한 설정 및 운영Datadog클라우드 기반 로그 관리 및 모니터링 서비스클라우드 기반, 실시간 모니터링, 다양한 통합 및 알림 기능유료 서비스로 비용 발생, 데이터 처리 지연 가능성 O 기술 선택 및 구현위와 같은 좋은 기술들이 있지만, 프로젝트 기간 동안 다른 작업들과 병행해야 했고, 로그 관리 작업은 우선순위가 낮은 추가적인 작업이었습니다. 따라서 새로운 기술을 도입하기보다는 이미 보유한 기술..

TIL 2024.12.27

Redis와 SMTP를 이용한 임시비밀번호 발급 기능

들어가며안녕하세요🙌:) 개발자 Bang99입니다.MOTIVE 프로젝트(ERP)에서 회원 도메인을 맡아 진행했으며, 진행한 이유와 어떻게 구현하였는지에 대해 설명드리겠습니다. 문제 정의MOTIVE 프로젝트(ERP)에서 회원 도메인을 담당하게 된 저는 로그인 화면에서 사용자가 비밀번호를 잊은 경우, 임시 비밀번호를 발급하는 기능이 필요하다는 요구사항이 있어 이를 구현하게 되었습니다. 이 과정에서 여러 기술적 선택지가 있었고, 각 기술의 장단점을 분석하여 최적의 방법을 결정하기 위한 고민이 필요했습니다. 선택 가능한 기술 분석기술장점단점Redis & SMTP- Redis는 빠르고 실시간 데이터 처리 가능- 이메일을 통한 안정적인 비밀번호 전달- Redis의 데이터 관리 필요- SMTP 이메일 서비스 설정 필..

TIL 2024.12.27

사용자 정의 예외 처리 및 서버 응답 구현

문제 정의웹 애플리케이션에서 다양한 응답과 예외 상황을 처리하는 과정에서, 프론트엔드에 불필요한 데이터가 포함되거나 일관되지 않은 형식으로 전달될 수 있는 문제가 있었습니다.  설계 목적이를 해결하기 위해, 모든 응답과 예외 상황을 체계적으로 관리하고 필요한 정보만을 추출하여 제공할 수 있는 공통 응답 객체와 전역 예외 처리 구조를 설계했습니다. 위와 같은 구조는 응답의 일관성을 유지하고, 유지보수성을 높이며, 예외 상황에서도 명확하고 간결한 데이터를 전달할 수 있도록 시스템의 안정성을 강화하는 데 중점을 두었습니다.  설계global└── common   ├── exception   │   ├── CommonException.java // 사용자 정의 예외 클래스   │   ├── ErrorCode...

TIL 2024.12.27

SHA-256 기반의 KISA 표준 암호화 알고리즘을 활용한 개인정보 보안 처리

1. 문제 정의개인정보를 다루는 시스템에서 보안은 가장 중요한 요소 중 하나로, 개인정보의 안전한 보호를 위해 다양한 암호화 기술이 사용되고 있습니다. 특히, KISA(한국인터넷진흥원)에서는 SHA-256을 표준 암호화 알고리즘으로 제안하며, 이를 활용한 데이터 보안을 권장하고 있습니다. 개인 식별 정보나 금융 정보 등을 안전하게 저장하고 전송하기 위해 신뢰할 수 있는 해시 알고리즘의 사용이 필요합니다. 2. SHA-256이란?SHA-256(Secure Hash Algorithm 256-bit)은 미국 국립표준기술연구소(NIST)가 개발한 해시 함수의 하나로, 데이터를 고유한 256비트 해시값으로 변환하는 암호화 알고리즘입니다. 이 알고리즘은 데이터 무결성을 검증하고, 기밀성을 유지하며, 인증을 제공하는..

TIL 2024.12.27

12월 3주차 회고록

한화 시스템 부트캠프를 수료하고 첫 주이다.이번주 나의 목표는 기본적인 이력서 및 자기소개서, 포트폴리오를 90%는 완성하고 이전 프로젝트 리팩토링 하는 것이였다.하지만, 학원을 다니기 전 나의 한량 백수 생활을 기대와는 다르게 뭐가 이렇게 일정이 빠듯한지 모르겠다. 연말이라 그런가? 아니면 내가 할 줄 아는게 생겨서 그럴까? 일정이 빠듯하지만 여유로운 나의 삶에 만족하면서 지내는 중이다.'포트폴리오' 라는 것이 형식이라는게 없고 정답이라는게 없다보니 정말 아무것도 못하고 여기저기 둘러보고 고민만하다 끝나는 하루도 있었다. 그래도 현재는 어찌저찌 열심히 써서 내용은 80%정도는 완성된 것 같다. 이제 이 내용을 어떤식으로 디자인 할지 정말 고민이 많다. 누가봐도 "우와~~" 할 정도로 만들고 싶다. 그래..

한화시스템 SW캠프 9기 12월 2주차 회고록

24.12.12(목) - 수료!기나긴 장정 6개월 교육 및 프로젝트가 끝이 났다.목요일 아침 수료하는 날이라 그런지 아침에 학원을 가는 버스 길이 심적으로 굉장히 복잡했다. 지옥같았던 6개월이 끝이 나서 기쁘기도 하지만, 부트캠프가 끝나고 나서의 내 삶이 한층 더 정신없고 바빠질 거 같다라는 직감이 와서 한숨나오는 기분 이 두개가 복합적으로 다가왔다. 그래서 그런지 그냥 하루종일 멍 때기게 되었던 것 같다. 오후에 모든 팀의 발표가 끝나고, 수료하는데 그때까지는 빨리 집이나 가고싶었다. 근데, 수료증을 선생님이 한명한명 나눠주시는데, 나한테는 나눠줄 때 '고생했어요' 라고 해주셨다. 아마 다른 사람들한테도 유사하게 말했을 거라고 생각한다. 근데, '고생했어요' 이 5글자가 별거 아니고 흔하게 듣는 단어인..

한화시스템 SW캠프 9기 12월 1주차 회고록

1. 주간 회고이제 길다면 길고 짧다면 짧은 6개월의 여정이 4일 남았다. 6개월이라는 기간동안 힘들었던 이야기의 마무리를 잘 짓기위해 노력하고 있다. 이제는 무엇을 더 열심히 해서 뭘 더 한다라기 보다는 갈무리를 잘하고 마지막날 웃는 얼굴로 인사를 하는 생각을 하고있다. 요즘은 부트캠프가 끝나가서 그런지, 이제 끝나고의 계획(연말)을 계속 생각하게 된다. '수료후 어떤 선택하는게 최선의 선택일까?'라는 질문에 아직 정답을 찾지는 않았지만, 이번주를 지나면서 뭔가 느껴지는거 같기도하고 아닌거 같기도하다. 다음주 수요일에 [IT 취업 준비 및 서류 작성법] 특강을 한다고 하는데 그걸 듣고 나면 내가 바로 취업을 준비하는게 맞을지, 아주 조금 더 준비를 하는 시간을 갖는게 맞을지 감이 올 것 같다. 이번주는..

한화시스템 SW캠프 9기 11월 회고록

11월 저번 프로젝트의 여파로 온몸이 무너지기 시작하여 휴가도 쓰고, 굉장히 열심히 하기보다는 장기적으로 코딩을 하기위해 '꾸준히'에 포커싱해서 몸갈아 넣는 것이 아닌 꾸준히 열심히했다. 마지막 프로젝트가 ERP 프로젝트라 그런지 굉장히 재밌다!! 이런 느낌은 없고, CRUD 상하차 열심히 하고, 프런트 그림그리는 공장일 하고, 별개 없다. 큰 생각을 꾸면 하는게 아닌 간단 노동작업을 하고있다. 하지만, 여유가 좀 생겨서 그런지 수료하고 나서의 일에 대해 조금씩 생각을 하게 된다. 아직 정해진건 없지만, 동아리 또는 취업을 준비하게 될거같다. 이번에 프로젝트 지겹게 하면서 느낀 여러가지 것들중 프로젝트는 그만하고, 위아래가 있는 곳에서 프로젝트를 해보고 싶어졌다. '평등' 이라는 단어는 아무리 생각해도 ..