개발 etc

    백엔드 아키텍처 설계 기초

    백엔드 아키텍처 설계 기초

    백엔드 아키텍처 기초 2 - 응답시간 개선 백엔드 아키텍처 기초 3 - 웹 계층 수평적 확장 백엔드 아키텍처 기초 4 - 데이터 센터 백엔드 아키텍처 기초 5 - 메시지 큐, 로그, 메트릭, 자동화 백엔드 아키텍처 기초 6 - 데이터베이스 규모 확장 백엔드 개발자로서 서버 개발을 먼저 학습했지만, 정작 아키텍처 설계를 어떻게 해야하는가에 대한 고민을 많이 하지 않았다. 당연하게 [클라이언트]-[서버]-[데이터베이스] 구조로만 생각했었다. 지금은 MSA와 여러 아키텍처에 대한 학습을 하다보니 어떤 식으로 설계를 해야하는가에 대한 고민이 생겼다. 메시지 큐(message queue)는 어느 환경에서 사용해야할까? 트래픽이 증가하면 단일 서버가 장애나지 않을까? 현재 프로젝트를 멀티 서버로 했을 때의 문제점은..

    오라클 클라우드 MFA 분실로 인한 로그인 문제

    오라클 클라우드 MFA 분실로 인한 로그인 문제

    스마트폰을 바꾸면서 기존에 있었던 Oracle Cloud MFA 키를 가져오지 않았다. 키를 이동시키는 방법은 잘 모르니 OCI에 접속해서 MFA 키를 비활성화하거나 대체 로그인을 설정했어야 했다. 하지만 MFA 비활성화도 하지 않고, 대체 로그인도 설정하지 않아서 오라클 클라우드에 로그인 할 수 없었다. 그렇다.. 망한거다...하... 하지만 드디어 오늘 해결이 되었기에 그 과정을 적어보고자 한다. 🚀 문제 발생 우선 계정 이름을 적어 로그인을 시도한다. 여기서도 이메일과 비밀번호를 적어 로그인을 시도한다. 그럼 이제 2차 인증으로 MFA 인증을 해야한다. MFA는 Multi-Factor Authentiacation으로 다중 인증 기능이라고 보면 된다. 이걸 사용하면 내 휴대폰에 설치된 앱을 통해 비밀..

    커뮤니케이션의 중요성을 다시끔 생각하게 되는 썰

    갑자기 개발과는 전혀 상관없는 친구가 연락와서 "너 우분투랑 RAID 아나?" 라고 물었다. 당연히 알고 있다고 하니 "RAID 구성한 것 같은데 확인하는 방법을 알고 있나?"라고 묻길래 당황했다. 나는 이론적 지식만 알고 있지 실제 구성과 확인하는 방법은 전혀 몰랐기에 구글 검색하면 다 나온다고 했다. 이 친구도 머리 좋고 빠릿하기에 검색해서 cat /proc/mdstat 쳤는데 전혀 나오지 않아서 연락했다고 한다. 나도 왜 없는지 이해가 안되었고 친구도 급했기에 혼자 알아보겠다면서 전화를 끊었다. 몇 분뒤... "해당 프로그램 깔아주는 회사에 연락해보니까 RAID 구성한 적이 없대..... RAID 구성을 안했으니 명령어를 쳐도 안나오지... 커뮤니케이션이 잘 안되어서 헛고생했다" 이 말을 듣고 진짜..

    웹 개발할 때 자주 보이는 HTTP 너 누구냐?

    웹 개발할 때 자주 보이는 HTTP 너 누구냐?

    웹 성능 최적화의 여러 방법 중 프로토콜 최적화를 하기 위해서는 HTTP를 알아야합니다. 그럼 HTTP가 무엇인지 알아봅시다! 🚀 HTTP란? Hypertext Transfer Protocol의 약어 웹 상에서 정보를 주고받을 수 있는 프로토콜 웹은 HTTP 프로토콜을 통해 전달되므로 HTTP 성능을 개선하면 웹 성능도 향상 기본적으로 HTTP는 애플리케이션 계층으로써 웹 서비스 통신에 사용 🚀 HTTP/0.9 1991년 등장 초기 HTTP에는 버전 정보가 따로 없었지만 구분을 위해 0.9버전이라 이름을 붙임 웹 콘텐츠를 요청하는 GET 메소드만 존재 HTML만 읽을 수 있을 뿐 클라이언트의 정보를 서버에 전달할 방법은 없었음 전달 받는 콘텐츠 중 텍스트만 읽기 가능 웹을 통해 정보를 전달하는 월드 와이..

    해시(hash) 넌 누구냐?

    해시(hash) 넌 누구냐?

    최근 CS 학습을 하다보니 해시가 많이 보였습니다. DB 조인 알고리즘에서의 해시 조인(Hash Join) Java의 HashMap Java의 hashcode() 자료구조의 해시 테이블(Hash Table) C++에서 정렬을 보장하지 않고 해시 테이블을 구현할 때 쓰는 unordered_map 암호화 해시 함수 ... 🤔 도대체 해시는 어떤 것이길래 이렇게 많이 보이는 걸까요? 🚀 해시 넌 누구냐? 해시 함수(Hash Function)라고도 불림 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수 즉, 아무리 큰 숫자를 넣더라도 정해진 크기의 숫자가 나오는 함수 단방향 함수이기에 출력된 값을 통해 입력값을 알 수 없음 입력된 값이 조금만 변해도 결과가 크게 달라지는 특성을 가..

    웹 개발자가 생각해야하는 웹 성능 최적화

    웹 개발자가 생각해야하는 웹 성능 최적화

    웹 사이트 속도는 매우 중요합니다. 느린 페이지에 접속하면 나가서 다른 페이지를 찾아보듯이 사용자 경험은 영향력이 매우 큽니다. 이번에 현대백화점이 더 현대로 바뀌어서 가보았는데 사용자(고객)가 걷기 편하고 인테리어도 고급스러우면서도 심플하게 디자인해서 "와 UI/UX 장난아니다"라고 생각했습니다. (진짜 개발자스럽다) 옛날엔 공간을 활용해서 매장을 입점했다면? 지금은 사용자에게 어떤 경험과 즐거움을 주는지가 중요해짐 더 현대 대구에서는 한 층 전체를 카페로 만든 초대형 카페가 있는데 전체가 잘 어울리면서 걷기도 편한게 개발자에겐 영감을 주는 공간이 아닐까 싶습니다. 옛날같으면 상상도 하지 못할 일을 지금은 하고 있습니다. IT로 표현하자면 기술 상향 표준화로 인해 사용자에게 기분 좋은 경험을 주는 것을..

    조회수 어뷰징은 어떻게 막아야 할까?

    어뷰징 (Abusing) : 의도적인 조작을 통해 조회수나 클릭수를 높이기 위한 일련의 행위 CRUD 커뮤니티 프로젝트를 하면서 고민했던 주제입니다. 다른 프로젝트에서는 커뮤니티 부분을 개발하지 않아서 생각하지도 않았던 문제인데, 개인적으로 따로 해보려니 많은 고민이 필요했습니다. 🧐 조회수는 무엇일까? 게시글을 1명의 사용자가 여러번 접속해도 카운트하는 것? 게시글을 1명의 사용자가 여러번 접속해도 한 번만 카운트하는 것? 게시글에서 1명의 사용자는 하루에 1번만 카운트하는 것? 비회원의 경우에도 게시글 접속하면 카운트하는 것? 1명의 사용자가 여러 장소(여러 IP)에서 접속했을 때, 조회수 증가는 어떻게 할까? 쿠키 기반이라면 고의로 삭제했을 때 어떻게 해야할까? ... 위와 같이 조회수 증가에 대한..

    [CSS] 구글에서 제공하는 폰트 사용하기

    [CSS] 구글에서 제공하는 폰트 사용하기

    https://fonts.google.com/?preview.text_type=custom Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 구글에서 제공하는 폰트 사이트를 들어가면 아래와 같은 화면이 나온다. 저 중에서 원하는 것을 검색하거나 클릭하면 아래 사이트로 상세히 들어온다. 이제 이 폰트를 원한다면 1번을 클릭한다. 그 후 오른쪽 메뉴바가 안나타난다면 2번을 클릭하여 펼친다. 그럼 내가 1번을 클릭하여 추가했던 폰트들이 나온다. 3번에 그 폰트들을 import 하여 사용할 수 있게 나와있는데 html에 적용할 것이라면 저대로 복사하면 되고, 나는 css파일에 넣을것..