전체 글

소프트웨어 개발자입니다. 더 많은 사람들이 양질의 지식을 습득하기 위한 생태계 구축에 기여하기 위한 공간입니다.
TIL/개발 칼럼

사용자의 UX를 고려한 로그인(JWT, 세션, 쿠키) 보안 전략 수립 및 구현(1)

안녕하세요🙌! 개발자 갈레입니다! 이번 글에서는 사용자의 UX를 고려한 로그인(세션, 쿠키) 보안 전략 수립에 대해 다뤄볼겁니다! 들어가며 컨텐츠만 보면 막 궁금증이 있는 분들이 있으실거에요! 보통 기술 구현에만 집중하다 보면 잊을 수 있는 중요한 질문들입니다:) Q. 로그인에 사용자 UX를 고려할게 있나? Q. 로그인 보안 전략이랄게 있나? 실제로 로그인을 구현하다보면 사용자 UX를 고려한 여러 보안 전략🔒을 세울일이 많답니다! 사용자 UX를 고려하지 않으면, 사용자가 자주 로그인😡해야할 수도 있습니다. (사용자는 친절하지 않습니다:)😬) 그렇다고 사용자 UX만을 고려하자니 사용자의 의 정보 탈취 가능성이 높아집니다! 편의와 보안은 Trade off인 경우가 많습니다. 글을 읽으면서 여러분들이 스스로의..

프레임워크/Spring

Filter를 사용하여 반복되는 응답 로직 제거 (feat.StandardResponse)

안녕하세요👋! 개발자 갈레입니다! 오늘은 filter를 사용하여 반복되는 응답 로직 제거하는 방법에 대해 알아보겠습니다! 들어가며 제 인사말을 듣고 딱! 궁금해하시는 분이 있으실거에요! Q.반복되는 응답 로직을 제거 하는 방법은 filter로 해야하나요? 다른 방법은 없나요? 아주😃! 좋은 질문입니다👍👍👍! 저희는 반복되는 (응답) 로직을 제거하는 방법들에 대해서 알아본 후, 반복되는 '응답' 로직을 제거하려면 어떤 방법들을 쓰는게 좋을지 상황에 따라 비교 분석할겁니다. 궁금증(호기심)을 가지면 좋은 컨텐츠 반복되는 응답 로직을 왜 제거하나요? 이점은? 제거 방법들엔 뭐가 있나요? 비교 분석? 언제 사용 해야하나요? 예외 사항은? 글을 읽으시면서 핵심 부분(노란)과 꼬리질문(초록) 부분에 집중하며 읽어주..

알고리즘/칼럼

브루트포스 공격 특성을 고려한 비밀번호 해싱 알고리즘 선정 및 Spring 적용 (2)

안녕하세요🙌! 개발자 갈레입니다! 지난 글 브루트포스 공격 특성을 고려한 비밀번호 해싱 알고리즘 선정(1)에 이어서 비밀번호 해싱 알고리즘 선정을 마무리하고 Spring 프로젝트에 적용까지 해보겠습니다! 들어가며 비밀번호가 암호화된 정보는 복호화가 되면 안돼기 때문에 단방향 해싱 함수를 썼어야 했습니다. 하지만 조금만 구글링 해도 과 같이 SHA 알고리즘의 문제점을 확인할 수 있었죠! 자 문제점(요구 사항)이 생겼습니다! 해결하기 위해 개념을 이해하기에 좋은 무기⚔️ '왜❓'를 꺼내봅시다! 궁금증(호기심)을 가지면 좋은 컨텐츠 그렇다면 SHA-1은 왜 지원 중단 됬을까요? SHA-1은 어떤 문제가 있었을까요? SHA-2는 안전할까요? 글을 읽으시면서 핵심 부분(노란)과 꼬리질문(초록) 부분에 집중하며 읽..

알고리즘/칼럼

브루트포스 공격 특성을 고려한 비밀번호 해싱 알고리즘 선정 (1)

안녕하세요🙌! 개발자 갈레입니다! 여러분들은 비밀번호를 평문으로 저장하면 안된다는 것을 알고 계셨나요? 권장 사항이냐구요? 강제 사항입니다! 법으로 실제로 명시가 돼있거든요 ㅎㅎ 은 가장 최근에 개정된 개인정보 법입니다:) 개인정보의 기술적·관리적 보호조치 기준[시행 2020. 1. 2.] 제6조(개인정보의 암호화) ① 정보통신서비스 제공자등은 비밀번호는 복호화 되지 아니하도록 일방향 암호화하여 저장한다. Q. 그렇다면 '왜' 비밀번호는 평문으로 저장하면 안될까요? 개발자A: DB가 탈취되면 민감한 개인정보(비밀번호)등이 유출될 수 있기 때문에요! 해당 개인 정보는 개발자도 볼 수가 있어요! 실제로 페이스북🌐에선 비밀번호를 평문으로 저장했었습니다. 난리가 났었죠! 페이스북, 내부 서버에 사용자 비밀번호를..

데이터베이스(DB)

[DB] 정규화란? 정규형이란? Why로 꼬리질문 하며 깊게 알아보자.

이 글을 읽은 후에 아래 질문에 답할 수 있게 됩니다. 정규화가 무엇이고, 각 종류에 대해 설명해주세요. 왜 제2 정규형는 제1 정규형이 필수로 선행돼야 할까요? 왜 제3 정규형은 제2 정규형이 필수로 선행돼야 할까요? 실제로 제3 정규형의 조건인 '비주요 속성 -> 비주요 속성' 함수 종속성 해결은 제 2정규형 때 하는 '후보키 부분 집합(후보키 내 속성) -> 비주요 속성' 함수 종속성 해결과 위치를 바꿔도 무관합니다. '후보키 부분 집합(후보키 내 속성) -> 비주요 속성 -> 비주요 속성'의 함수 종속성이 있는 릴레이션을 생각해보죠! 앞을 먼저 끊든 뒤를 먼저 끊든 아무 문제가 없습니다. 근데 왜 우린 앞을 먼저 끊어야할까요? 제 1정규화를 하면 제2 혹은 3 정규화까지 만족시키는 경우도 있습니다..

데이터베이스(DB)

[DB] 이상현상이란? 함수 종속성이란? 꼬리 질문하며 살펴보자.

언쟝! 안녕하세요 어려분 오늘은 이상 현상, 함수 종속성과 정규화에 대해 알아보려고 왔습니다. 제가 세 단어를 띄어 말해서 마치 서로 관련이 없는 요소들로 보일 수 있지만 실은 아주 깊은 관계가 얽혀 있습니다. 결론부터 말하자면 DB의 릴레이션을 속성간 함수 종속성을 충분히 고려하지 않고 설계하면 이상 현상이 발생합니다! 이상 현상이 발생하지 않게 함수 종속성을 고려하며 재설계 하는 과정이 정규화입니다! 무슨말인지 감을 못잡겠다구요? 그럼 쭉 계속 내려가봅시다! 참고로 우린 계속 Why를 붙여가며 꼬리 질문을 할겁니다. 정확한 이해는 필수이기 때문이죠:) 학습 목표 1. 이상 현상이란? 2. 함수 종속성이란? 3. 정규화란?(다음 글) 1. 이상 현상이란? 정의: 릴레이션의 설계가 잘못되어, SQL 문의..

회고/f-lab 회고

[회고,f-lab] 5-7주차 회고. 개발자가 가져야 하는 태도.

오랜만이네요. 이번 5-7주차 동안은 많은 일이 있었습니다. 코로나 양성이 떠서 자가 격리를 했지만 그 기간 동안 코딩 테스트 문제를 집중적으로 풀었고 이를 통해 많은 것을 깨달았었네요. 역시 특정 시점에는 깊게 몰입하는게 성장에 긍정적인 영향을 끼치군요. 이번 회고는 태도(Attitude) 중심으로 봐주셨으면 좋겠습니다. 그리고 읽으시는 여러분들도 한번 유추해보면 좋을듯합니다. 필자는 왜 이런 태도를 가지게 됬을까? 회고 목차는 아래와 같습니다. 이전 회고는 역할을 분류 기준으로 삼아 회고 했지만 이번에는 컨텐츠를 분류 기준으로 정했습니다. f-lab에 대한 회고이기도 하며 개발자로서 회고이기 때문에 이와 관련된 컨텐츠 위주로 분류 기준이 정해져야 한다고 판단했습니다. 그럼 회고 시작합니다! 목차 1...

Computer launguage/Java

[Deep dive] 부동 소수점, 고정 소수점 표현 방법? 연산 속도? 오차? 돈 계산?

돈 계산과 같은 높은 정확도를 요구하는 연산 과정에선 float와 double를 사용하지 말라고들 합니다. 아마도 float과 double이 정확도가 낮기 때문이겠죠? 실제로 if (floatVariable == 0)을 지양하라고 합니다. 왜그럴까요? 왜 float와 double은 정확도가 안좋을까요? 적당히 깊게 원리까지 알아보고, 대안을 찾아봅시다. 결론부터 말하면 float와 double은 부동 소수점으로 실수를 표현하기 때문에 정확도가 낮습니다. 또한 부동 소수점 표현 방식은 연산 과정에서 지수부를 일치시킨 후, 가수부 끼리 계산 후, 지수부를 다시 일치시키는 과정을 겪어야 하기 때문에 연산 속도가 느립니다. 이러한 이유로 소수점 계산 시, 이를 정수로 계산한 뒤 소수로 바꾸는 과정을 거치라고들 ..

김민석(갈레, 페퍼)
개발자-김민석