@Hudi
꾸준히, 의미있는 학습을 기록하기 위한 공간입니다.

SQL 중심적인 개발의 문제점

July 03, 2022

우아한테크코스 백엔드 과정에서 데이터베이스를 사용하는 어플리케이션을 개발하며 '이건 객체지향적인 설계가 아닌 것 같은데?' 라는 생각을 자주 해왔다. Repository 와 DAO 를 통해, 데이터베이스에서 데이터를 가져와 데이터를 조립하는 작업을 가상의 컬렉션에서 객체를 꺼내오듯이 추상화하였지만, 여전히 고민은 계속되었다. (의도한 것은 아니었지만, 우…


세션 기반 인증과 토큰 기반 인증 (feat. 인증과 인가)

June 22, 2022

인증과 인가 세션기반 인가와 토큰기반 인가에 대해 알아보기 이전에 먼저, 인증과 인가가 무엇인지 부터 알아야할 필요가 있다. 인증과 인가를 같거나 비슷한 개념이라고 생각하는 사람들이 많을텐데, 엄밀하게는 서로 다른 개념이다. 인증과 인가는 요약하자면 시스템의 자원을 적절하고 유효한 사용자에게 전달하고 공개하는 방법이다. 인증 (Authentication)…


다중 서버 환경에서의 세션 불일치 문제와 해결방법

June 20, 2022

세션 불일치 문제는 단일 서버 환경에서는 발생하지 않으므로 따로 걱정하지 않아도 된다. 하지만, 최근 웹 서비스는 대부분 수직 확장(Scale Up)이 아닌 수평 확장(Scale Out)으로 서버를 확장하기 때문에 일반적으로 다중 서버 환경일 것 이다. 이런 다중 서버 환경에서는 세션 불일치 문제가 발생할 수 있다. 기본적으로 세션은 서버의 메모리(RAM…


수직 확장(Scale up) vs 수평 확장 (Scale out)

June 20, 2022

웹 서비스가 성장함에 따라 유저가 많아지게 되고, 그렇게 되면 서버 확장은 필연적일 것 이다. 이때 운영중인 서비스의 서버를 확장하는 방식은 크게 수직 확장과 수평 확장 두가지로 분류된다. 수직 확장 (Scale up) 단일 서버의 스펙을 단순히 더 좋은 것으로 업그레이드 하는 것이 수직 확장이다. 예를 들어 32gb 였던 서버 메모리를 64gb로 늘리거…


Spring, MySQL과 함께한 첫 AWS 배포 경험기 🗺️

June 17, 2022

최근 우테코에서 간단히 AWS 배포 경험을 해보았을때는 보안그룹이라던지, VPC, Subnet, 라우팅테이블 등 많은 설정들이 미리 준비되어있었기 때문에 AWS 인프라 전반적으로 이해도가 낮아도 배포에 큰 어려움이 없었다. 같은 우테코 백엔드 4기 크루 수달과 함께 한번 더 배포해보며 복기해보는 과정도 어려움을 낮추는데 큰 역할을 하였다. 나는 여기서 더…


CORS가 대체 무엇일까? (feat. SOP)

June 13, 2022

웹 어플리케이션을 개발하다보면 거의 항상 CORS 이슈를 마주하게 된다. 그때마다 항상 이리저리 헤매며 해결방법만을 찾아 다녔는데, 이번 기회에 CORS가 무엇인지 조금 깊게 공부해보았다. 출처 (Origin) CORS와 SOP는 모두 출처(Origin)와 관련된 개념이다. 따라서 이 두가지에 대하여 이야기를 하기 전에 Origin이 무엇인지 알고 넘어…


🖋 우테코에서 찾은 나만의 효과적인 공부법

June 11, 2022

우아한테크코스에서는 매 레벨마다 글쓰기 미션이 주어진다. 이 글은 레벨2 '우테코에서 찾은 나만의 효과적인 공부법' 주제의 글쓰기 미션에 제출한 글이다. (원본) 전통적인 교육, 그리고 우아한테크코스 우리는 초, 중, 고등학교와 대학교를 거치며 책상에 가만히 앉은 상태로 지식이 주입되는 그런 교육에 익숙합니다. 그런 교육에는 주관과 비판적 사고가 결여되어…


리눅스 표준 스트림과 리다이렉션, 파이프

June 06, 2022

표준 스트림 (Standard Stream) 유닉스 이전의 운영체제는 장치에 대한 입출력을 구현하기 위해 장치에 대한 환경설정을 일일히 해야하는 등 프로그래밍이 까다로웠다. 이를 해결하기 위해 유닉스는 운영체제에 연결된 입출력 장치도 파일로 추상화하고, 장치를 다루는 것이 파일을 다루는 것과 같도록 만들었다. 다양한 하드웨어 장치를 제어하는 것이 입출력…


[AWS] VPC (Virtual Private Cloud) (ft. CIDR, 서브넷, 라우팅 테이블)

June 06, 2022

우아한테크코스 레벨2 장바구니 미션에서 배포를 하기 위해 AWS의 EC2 인스턴스를 생성했다. 배포 인프라 강의에서 짤막하게 VPC와 Subnet에 대해 듣게 되었고, 더 자세히 이해하기 위해 별도로 공부했다. 하지만, 모든 내용을 공부하기엔 광범위한 주제고, 생각보다 어려워 당장 필요한 수준의 학습만 간단하게 하기로 하였다. 따라서 틀린 내용이 있을 수…


[AWS] 리전(Region)과 가용영역(Availability Zone)

June 05, 2022

리전 (Region) AWS는 글로벌 클라우드 서비스이다. 따라서 AWS에서 제공되는 클라우드 컴퓨팅 리소스들은 미국에서만 호스팅 되지 않고, 전세계 각국에서 호스팅된다. 이때 이 호스팅되는 위치를 지리적 관점으로 영역을 구분하는데, 이를 리전이라고 한다. 이를테면, 일본 도쿄에서 호스팅되는 영역은 도쿄 리전, 한국 서울에서 호스팅 되는 영역은 서울 리…