학습일지(26)
-
개인정보 의미와 안전성 확보를 위한 개발자의 역할
개인정보 유출에 따른 부작용은 매우 심각합니다. 그래서 개인정보 보호법에서는 개인정보를 안전하게 관리하기 위한 최소한의 의무 사항을 정해두고 있습니다. 현재 사내에서 진행하고 있는 프로젝트는 이러한 부분에 대한 조치가 전혀 없는 상황이기에 최소한의 조치를 취하기위해 개인정보에 의미와 안전성을 확보를 위한 조치로 무엇이 있는지를 알아보기로 하였습니다. 개인정보의 의미 개인정보는 단순히, 특정 인물의 이름, 나이와 같은 신상정보만을 의미하지 않습니다. 사용자가 서비스를 이용하는 과정에서 자동 생성되는 로그, 통화내역, 상품 구매내역, GPS 위치정보 등도 개인정보가 될 수 있습니다. 광범위한 개인정보 활용범위 '개인정보 수집' 이라고 하면, 얼핏 회원가입/로그인 기능 외에는 크게 신경쓸 필요가 없는 것처럼 ..
2023.10.21 -
어떻게 하면 Http api의 응답속도가 느려질까?
웹, 앱 플랫폼으로 개발하시는 분들은 여러 가지 이유로 postman을 통해 api를 실제로 실행을 해봅니다. 보통은 http 응답코드가 의도한 데로 나오는지 확인하고 끝내는 것이 일반적이긴 한데요. 그런데 한 가지 의문이 듭니다. 같은 api를 실행할 때 처음 실행했을때와 그 이후에 실행했을 때와의 응답속도 차이가 거의 10배 이상 차이가 납니다. 구글링을 해봐도 딱 명쾌하게 답을 주는 경우가 거의 없습니다. 물론 이 원리를 몰라도 개발을 하는데 전혀 문제가 없습니다. 그러나, 개발 프로젝트의 규모가 커지고 MAU가 증가할 경우 성능 최적화가 필수이며 최적화 작업을 하기 위해선 내가 사용하는 api의 동작원리를 제대로 파악할 필요가 있습니다. HTTP 통신의 응답속도를 늦추는 요인 1. 네트워크 관점 ..
2023.06.09 -
비밀번호 입력.. 꼭 그렇게까지 해야 속이 후련할까?
Overview 회원가입을 진행하기위해 플로우 차트를 작성하던 중, 비밀번호 입력 제약에 대해 고민하게 되었다. 일반적으로 대부분 서비스들을 살펴보면, 비밀번호 입력시 다음과 같은 패턴을 강요한다. 최소 10자이상 영문 대소문자 숫자 특수문자 이러한 패턴을 강요하는 과정이 보안을 강화시켜줄 수 있겠지만, 결과적으로 사용자 경험을 낮추는 요소가 될 수 있을 듯하여, 해당 내용을 조사하고 상황을 다시 정의해보고자 한다. 위와 같은 비밀번호 패턴이 발생한 이유 아무리 개인정보 보안을 강화하기 위해서라지만, 너무 복잡하다. 사용자 경험 개선을 위해, 이 패턴을 없앨 수 있는지 확인을 해볼 필요가 있다. 먼저 이러한 패턴이 생긴 이유를 살펴보자. 범인(?)은 빌 버(Bill Burr) “NIST Special P..
2023.02.03 -
브랜치 추상화에 대해 알아보자
브랜치 추상화란 어플리케이션의 큰 변화를 만들 때 주 흐름(Mainline)에 점진적으로 반영하는 패턴이다. 즉, 특정 라이브러리 혹은 오픈소스의 이름이 아니라, 작업 방식에 대한 방법론이다. 추상화된 브랜치 작업의 핵심은 예전에 하던 소스 추가 습관을 못하게 하는 훈련에 있다. 구체적인 방법은 다양한데, 가장 대표적인 방법은 특정 기술의 코드가 추가되면 빌드를 실패하게 하는 것이다. 일반적인 브렌치 추상화 작업 단계 변경이 필요한 시스템 부분에 추상 레이어를 생성한다. 시스템의 다른 부분을 이 추상 레이어를 쓰도록 리팩토링 한다. 새로운 클래스를 생성하고, 새로운 구현을 한다. 그리고 그 추상 레이어가 이전에 혹은 새로 생긴 클래스를 필요에 따라 위임하도록 한다. 이전 버전 구현 내용을 삭제한다. 앞의..
2023.02.03 -
Branch 대신에 FeatureFlag..?
Overview 이번 market api는 작업 특성상 프로세스 생명주기를 짧고 빠르게 잡아야 했다. 따라서, branch를 목적에 따라 다양하게 분리하고, 생명주기 역시 길게 잡는 Git-flow 보다는 그 반대의 성향을 가진 Trunk based development 방식이 더 효율이 좋을 듯 하다. Trunk based development 작업의 특징은 중심 브렌치(main || Trunk) 하나에 모든 작업을 때려넣는 것인데, 좀 더 자세히 알아보면, 무조건 브렌치 하나만 두는 것이 아니다. 필요하면, featuring 브렌치를 만들기도 한다. 다만, 'git-flow'와는 다르게 생성한 브렌치의 유지기간을 매우 짧게 갖는 것이다. 그런데 이번 프로젝트의 경우, 거의 나홀로 진행하기도 하고, M..
2023.02.01 -
놀랍고 놀라운 Spring Framework 6 근데, 과연 사용할 날이 올까?
이제 스프링 5에 익숙해질랑 말랑하려고 하는데, 갑자기 또 조만간 스프링 6을 출시한다고 한다. 공부해야 할게 아직도 산더미로 쌓여있는데 또 공부해야 할게 늘어나 심기가 편치 않다... 그래도 안 할 수는 없으니, 시간이 좀 있을 때, 요약해보고 개인적인 견해를 펼쳐볼까 한다. keynote: Introducing Spring Framework 6 요약 https://www.youtube.com/watch?app=desktop&v=mitWK_DwKGs&fbclid=IwAR3nagdKKWbEcwChuv11e3Tp0mXSzwBPh8TvA2QsiKiqDmFpvzsQKobXwgY&ab_channel=SpringDeveloper&mibextid=Zxz2cZ 명목상 Spring 6 소개 영상이지만, 사실은 6.1에..
2023.01.09