소프트웨어 개발에서 status와 state는 비슷해 보이지만 사용하는 맥락과 의미가 다르다. Status“What is the current status of this project?” The answer should be “In testing.” Status는 시스템, 프로세스 또는 객체의 외부적이고 정적인 속성을 나타내며, 현재의 상태를 설명하거나 나타낸다. 대표적으로 http 요청을 주고받을 때 response에 status가 포함된다. 여기서 200, 404 등의 status 코드가 함께 반환되고 이러한 상태는 이미 결정된 것이므로 현재의 결과에선 절대 변하지 않는 정적 속성을 지닌다. 특징을 정리해 보면 아래와 같다.외부 정적 상태특정 시점의 상태를 설명시스템의 현재 상태 보고예시: 서버 상태..
SSO(Single Sign-On) SSO(Single Sign-On)는 한 번의 사용자 인증으로 다수의 애플리케이션 및 웹사이트에 대한 사용자 로그인을 허용하는 통합 인증 솔루션이다. 최근 간편 로그인 또는 소셜 로그인(Social Login)이라는 이름으로 많은 어플리케이션과 웹 사이트에서 접할 수 있다. SSO의 가장 큰 장점은 하나의 플랫폼에서 인증이 끝나면 그 이후 로그인과 로그아웃을 반복할 필요가 없다는 간편함이다. 이러한 간편함은 사용자 경험을 개선하는 중요한 방법 중 하나가 된다. 뿐만 아니라 서비스를 제공자도 기술적, 관리적 측면에서 아래와 같은 이점이 있다. 암호 보안 강화: 하나의 강력한 비밀번호를 만들도록 권장하여 사용자의 오입력 방지와 함께 기존의 보안 관행에서 어느정도 벗어날 수..
규모가 크지 않은 서버를 구현할 때 Python을 이용하는 것은 생산성 측면에서 이득이 있다. 그래서 Flask를 이용하여 종종 API 서버를 구현하곤 했지만 최근 새 프로젝트에 FastAPI를 이용해 직접 API 서버를 구현해 보았다. 이때까지는 wsgi, asgi 등 콘솔창에 찍히는 로그를 별로 신경 안 쓰고 넘어갔었다. 이외에도 gunicorn, uvicorn 등 이제는 알고 넘어가야 할 때인 듯하여 이번 기회에 정리를 해본다. 일반적으로 Python으로 서버를 구현할 때 Nginx와 연동하여 배포한다. 여기서 주의할 점은 파이썬 웹 서버 프레임워크는 웹 서버가 아니라는 것이다. 물론 개발 중에는 Flask나 Django에 내장된 WSGI compatible server를 이용하는 것이 생산성에 도..
사용자에게 제공되는 UI는 기본적으로 어떠한 선택을 하도록 유도하거나 특정 기능들을 사용하기 위한 옵션들을 선택하는 기능들을 내포하고 있다. 가장 심플한 방법이며 GUI 구현을 위한 어떤 개발 언어나 프레임워크를 사용하는가와 관계없이 항상 기본 위젯으로 제공되는 선택 방식인 Radio Button과 Drop-Down 방식의 적절한 사용 방법에 대한 기본적인 몇가지 규칙이 있다. Radio Button 우선 라디오 버튼을 사용하기 적절한 케이스는 아래와 같다. When You Want to Emphasize Options When You Have Less Than 5 Options When Comparison of Options Needs to Make Clear When Visibility and Qui..
CTA(Call To Action) CTA(Call To Action)이란 방문객이 제공되는 UI 내에서 제작자의 의도대로 클릭을 하거나 다른 행동을 하도록 유도하기 위한 버튼 또는 방식들을 의미한다. 이 CTA는 온라인 마케팅에서 성과를 내는 데 아주 중요한 역할을 수행한다. 아무리 좋은 제품, 서비스라도 페이지 내 CTA가 제대로 구성되어 있지 않다면 잠재 고객들은 전환으로 이어지기 전에 해당 페이지를 이탈할 가능성이 높다. 효과적인 CTA를 위한 전략이 필요하다. Marketing Experiments에 따르면 마케터가 자신의 메시지를 빠르고 효과적으로 전달하고 방문자에게 행동을 유도하기 위해 6가지 주요 목표에 집중해야 한다고 말한다. 주의 끌기(Arrest attention) 연결 생성(Buil..
개발을 진행하며 파일 구조를 설계할 때 항상 디렉토리 명과 파일 명들을 명명할 때 고민이 되거나 헷갈리는 경우가 있다. 이 때 네이밍에 좀 참고하고자 해당 내용들을 정리해보았다. SDK(Software Development Kit) SDK(Software Development Kit)란 직역하자면 소프트웨어 개발 도구 모음이다. SDK에는 API, IDE, 문서, 라이브러리, 코드 샘플 및 기타 유틸리티 등 다양한 개발 도구를 포함하고 있다. 또한 프로그램 및 응용 프로그램 개발의 복잡성을 줄이는 강력한 기능 집합으로 볼 수 있다. 즉, 어떤 소프트웨어를 만들기 위한 도구 모음을 SDK라고 한다. 그리고 이 도구엔 API도 포함되어 있다. 예를 들어 iOS SDK를 다운로드하면 개발자에게 iOS 애플리케..