용어 정리
·
Deep Dives/Technical Notes
🌈회사에서 사용하는 협업, 마케팅 용어KPI (Key Performance Indicator)핵심 성과 지표로, 조직의 목표 달성을 측정하기 위한 구체적이고 측정 가능한 지표입니다.웹사이트의 트래픽 증가율, 신규 사용자 수, 전환율 등.ROI (Return on Investment)투자 대비 수익을 의미하며, 특정 마케팅 캠페인이 얼마나 효과적으로 비용을 회수했는지를 나타냅니다.마케팅 캠페인에 $1,000을 투자해 $2,000의 수익을 얻었다면 ROI는 100%입니다.CAC (Customer Acquisition Cost)신규 고객을 획득하는 데 드는 비용을 의미합니다. 마케팅 비용을 신규 고객 수로 나누어 계산합니다.광고비, 이벤트 비용, 영업 비용 등을 모두 포함한 비용이 해당됩니다.LTV (Lif..
MongoDB Atlas Search
·
Deep Dives/Technical Notes
숏폼프로젝트의 검색기능을 강화 하고자 MongoDB 아틀라스서치와 Elasticsearch 에 대한 이야기가 팀내에서 나왔고1두가지의 공통점과  2.  차이점을 비교한후 3. 어떤 것을 선택했는지 4. 그것을 선택했을때 어떠한 장점이 있는지를 간단하게 서술하고자 합니다. 우선 검색 부분에서 몽고DB 와 아틀라스 서치의 비교 MongoDB Atlas Search는 전체 텍스트 검색 기능을 제공하지만, 복잡한 검색 시나리오를 위한 Elasticsearch만큼 기능이 풍부하거나 성능이 뛰어나지는 않습니다. 기본에서 중간 정도의 검색 요구 사항을 충족하려면 Atlas 검색으로 충분할 수 있습니다. 엘라스틱 서치와 몽고DB 의 주요 차이점 Elasticsearch는 주로 빠르고 복잡한 검색 쿼리, 특히 텍스트 검..
의사결정 PostgreSQL vs MySQL
·
Deep Dives/Technical Notes
데이터 베이스 선택의 중요성은 데이터베이스는 응용 프로그램에서 데이터를 저장, 검색, 수정 및 관리하는 데 필수적인 역할을 하기 때문입니다. 따라서 데이터베이스 선택은 애플리케이션의 성능, 확장성, 보안 등에 직접적인 영향을 미칩기 떄문입니다.그리하여 데이터베이스 선택은 단순히 기술적인 결정을 넘어서, 비즈니스 요구 사항을 충족시키고 장기적인 관점에서 애플리케이션의 성공을 지원하는 전략적인 결정입니다. 왜냐하면 올바른 데이터베이스 선택은 데이터 관리의 효율성을 높이고, 유지 관리 비용을 줄이며, 최종 사용자에게 더 나은 서비스를 제공하는 데 기여하기 때문입니다. 이번 쇼츠 프로젝트에서 관계형 데이터베이스 관리 시스템을 어떤것으로 선정할까 라는 고민을 했습니다.응답이 7만 6천으로 엄청나게 많지는 않지만 ..
프로젝트 보안 강화를 위한 Helmet과 다른 것들 비교 , XSS attack
·
Deep Dives/Technical Notes
XSS (Cross-Site Scripting)  XSS(Cross-Site Scripting) 이란 웹 애플리케이션에서 일어나는 취약점으로 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법입니다. XSS공격 역시 OWASP Top10에 포함되어 있습니다. 대부분 사용자가 글을 쓰고 읽을 수 있는 게시판에 많이 발생하지만, 사용자의 입력 값을 웹 페이지에 보여주는 곳에서도 발생합니다. 악의적인 사용자가 C&C 서버로 리다이렉션 하기 위해 리다이렉션 스크립트를 주입하여 중간 경유지로 활용하기도 하고, 사용자의 쿠키를 탈취하여 세션 하이재킹(Session Hijacking) 공격을 수행하기도 합니다. 위의 사진은 XSS 공격중 Persistent(or Stored) XSS Att..
동영상 쇼츠 서비스 프로젝트 기술적 의사 결정 part 2 테스트 도구편 Artillery를 선택한 이유 vs K6 vs Locust 그리고 APM 을 선택한 이유 vs 다른 도구들
·
Deep Dives/Technical Notes
우선 동영상 쇼츠 서비스 프로젝트 기술적 의사결정을 하기 이전 성능 테스트,부하 테스트,스트레스 테스트가 왜필요한지에 대해서 조사하고 그렇다면성능 테스트 부하테스트 스트레스테스트에 대해서 조사한 것들 먼저 작성 해보겠습니다 . 이후에 관련한 테스트 도구들을 비교해보고 의사결정 이유까지 작성해보겠습니다.애플리케이션 성능 테스트의 필요성애플리케이션 성능 테스트는 시스템의 안정성과 확장성을 보장하기 위해 필수적인 과정입니다. 단순히 기능이 정상적으로 동작하는지 확인하는 것을 넘어, 실제 사용자 환경에서 애플리케이션이 어떻게 반응하고, 예상치 못한 부하나 오류 상황에서 얼마나 안정적으로 동작하는지를 확인할 수 있습니다. 특히, 현대의 복잡한 애플리케이션 환경에서는 단순 테스트만으로는 알 수 없는 다양한 문제를 ..
Node.js백 엔드 서버 개발자 주니어의 동영상 쇼츠 서비스 프로젝트 기술적 의사 결정
·
Deep Dives/Technical Notes
BackEnd1. NestJs를 선택한이유 vs Express1. 구조화와 확장성NestJS는 모듈 기반 아키텍처를 제공하므로, 프로젝트를 기능 단위로 잘게 나누어 관리할 수 있습니다.동영상 업로드, 처리, 검색, 사용자 관리 등의 기능을 모듈로 분리하여 개발과 유지보수를 쉽게 할 수 있습니다.쇼폼 콘텐츠 프로젝트는 기능 추가(예: 추천 알고리즘, 댓글 기능 등)가 빈번할 가능성이 높으므로, NestJS의 구조화된 방식이 장기적으로 유리합니다.Express는 구조를 사용자가 설계해야 하며, 프로젝트 규모가 커질수록 코드 복잡도가 증가합니다.2. TypeScript 지원NestJS는 TypeScript를 기본 지원하며, 강력한 정적 타입 검사와 IDE 자동 완성 기능을 제공합니다.동영상 메타데이터, 사용자..
도커 장단점과 EC2,ECS
·
Deep Dives/Technical Notes
도커 장점 :1개발 환경 일관성: "개발 환경에서 잘 작동했는데 배포 환경에서는 안 되는 문제"를 해결.2이식성:한 번 이미지를 생성하면, 어디에서나 동일하게 실행 가능. , 로컬 PC, 클라우드, 서버 등 환경에 구애받지 않음.단점 :Kubernetes 같은 오케스트레이션 도구가 필요할 수 있음.ECS는 컨테이너 중심의 작업(특히 마이크로서비스)을 단순화하고 자동화하기에 적합하며, 서버 관리 부담을 줄이고 싶을 때 강력한 선택입니다. Fargate를 사용하면 더욱 간편하게 운영할 수 있습니다.EC2는 컨테이너 외에도 다양한 작업을 실행하거나 서버에 대한 세밀한 제어가 필요한 경우 선택하는 것이 좋습니다.디버깅 어려움 : 컨테이너 내부에서 실행되는 애플리케이션을 디버깅하거나 로그를 추적하기 어렵게 느껴질..