본문 바로가기

전체 글168

Amazon S3 Amazon S3 Simple Storage Service의 약자로, AWS에서 제공하는 클라우드 스토리지 서비스이다. 클라우드 스토리지 서비스라고해서 어렵게 느껴질 수 있지만, 쉽게 생각하면 우리가 흔히 쓰는 구글드라이브, 네이버 MYBOX처럼 파일을 저장해두면 다른 기기라고 하더라도 언제 어디서나 쓸 수 있게 해주는 저장소라고 할 수 있다. Amazon Simple Storage Service는 인터넷 스토리지 서비스입니다. 이 서비스는 개발자가 더 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 설계되었습니다. S3의 장점 S3를 사용하면 다양한 이점을 얻을 수 있다. 우선은 스토리지 규모를 무한히 확장할 수 있고, 쓴만큼의 비용만 내면 되기 때문에 효율적이기도 하다. 그리고 내구성이 높아 저장된 파.. 2021. 3. 10.
AWS RDS(Relational Database Service) RDS ❓ RDS는 Relational Database Service의 줄임말인데, 이름 그대로 AWS에서 제공하는 관계형 데이터 베이스 서비스이다. 이걸 굳이 왜 쓰는 걸까? 앞서 배운 EC2에 MySQL같은 관계형 데이터베이스 엔진을 설치해두면, RDS를 사용할 필요가 없는게 아닐까? 하는 생각이 들 수도 있다. 그렇다면 대체 어떤 이점이 있길래 쓰는건지부터 한번 살펴보자. 우선 EC2 인스턴스에 Database를 직접 설치해서 데이터를 관리하게되면, 유지보수나 버전관리, 데이터 백업 등 필요한 모든 작업들을 일일이 사용자가 처리해야 한다. 하지만, RDS를 사용하면 차를 렌트하듯이 유지보수같은 일들은 AWS에 맡길 수 있게 된다. 사용자는 그냥 초기설정만 하고, Database에 저장된 데이터들을 .. 2021. 3. 10.
Amazon EC2 (Elastic Compute Cloud) Amazon Elastic Compute Cloud(Amazon EC2)는 안전하고 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스입니다. 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었습니다. Amazon EC2의 간단한 웹 서비스 인터페이스를 통해 간편하게 필요한 용량을 얻고 구성할 수 있습니다. 컴퓨팅 리소스에 대한 포괄적인 제어권을 제공하며, Amazon의 검증된 컴퓨팅 인프라에서 실행할 수 있습니다. EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스이다. 한마디로 원격제어가 가능한 가상컴퓨터를 아마존에서 한 대 빌려오는 것이다. 제어하는 방법은 간단하다. AWS가 제공하는 URL(Public DNS)를 통해 접근해 일반 컴퓨터처럼 사용하면 된다. 이.. 2021. 3. 10.
배포 (Deploy) 배포? 배포한다는게 무슨말일까? 한마디로 말하면 내가 개발한 서비스를 다른 사용자들도 이용할 수 있게 하는 과정이라고 할 수 있다. 하지만 내 컴퓨터에 어떤 환경 설정이 되어있는지는 알 수 있지만, 남의 환경은 알기 힘들다는 문제가 있다. 따라서 배포 과정에서는 내 로컬환경뿐만 아니라 모두의 환경에서 프로그램이 잘 작동하도록 하는 것이 중요하다. 배포의 일반적인 과정 1. Development 컴퓨터의 로컬 환경에서 개발을 하고, 테스트를 진행하는 과정으로, 여기서는 아직 개발중인 단계이기 때문에 실제 데이터가 아닌 fake data를 이용해 테스트를 하게 된다. 모든 구성원들이 각자의 환경에서 개인플레이로 진행하는 단계이기 때문에 변경 사항이 생겨도 별다른 문제를 일으키지 않는다. 2. Intergra.. 2021. 3. 10.
Cloud Computing (클라우드 컴퓨팅), 온프레미스(On-premise) 온프레미스(On-premise) 온프레미스(On-premise)란 소프트웨어 등 솔루션을 클라우드 같이 원격 환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식을 말합니다. 온프레미스는 클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라 구축의 일반적인 방식이었기 때문에 이전 또는 전통적인 이라는 단어와 함께 사용됩니다. premise의 뜻을 찾아보면 '기본, 전제, 건물, 토지' 라고 나온다. 온프레미스는 자체적으로 서버실같은 곳에 컴퓨터를 두고 인터넷을 연결해 서비스를 제공하는 방식이다. premise의 뜻과 함께 생각해보면 어딘가에 기반을 두고있다는 뜻이 아닐까 싶다. 곧 소개할 클라우드와는 반대로 원격이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 것이다. 이때는 .. 2021. 3. 10.
210309_TIL (마지막 HA) 🍎 오늘 한 일 마지막 HA 이머시브코스 마지막 HA를 봤다. 로그인, 로그아웃, 회원가입 기능을 MVC 패턴으로 구현하는게 과제였다. 이번에는 테스트뿐만 아니라 실제로도 정상적으로 작동이 되어야한다는 요구조건도 있었고, 구현한 기능에 대한 시연영상까지도 녹화해서 올려야했는데 여기에 시간이 더들어간 느낌이다. 정말 필요한 설명만 딱 하고 짧게 설명을 끝내고 싶었는데 막상 녹화버튼을 누르고나니 정리했던말들은 머리속에서 사라지고 아무말이나 하게되는것같아서 정말 여러번 찍었던것같다. 역시 한번에 정리해서 필요한 말만하는건 아직 쉽지가 않다. 페어프로그래밍을 하면서 전보단 나아진것같기는 하지만 더 연습을 해야겠다,, 일단 이게 마지막 HA이고 벌써 3월이고 곧 프로젝트를 해야한다니.. 뭔가 기대되면서도 프로젝트.. 2021. 3. 10.
210308_TIL (OAuth2.0으로 깃헙로그인 구현, 세션기반인증 복습) 🍎 오늘 한 일 세션기반인증 - 회원가입 기능 추가 MVC 패턴을 복습해보기 위해 로그인, 로그아웃 기능까지만 구현되어있던 어플리케이션에 좀 더 기능을 추가해봤다. DB에서의 Create, Read, Update, Delete 네가지를 모두 구현해보고싶어서 회원 가입과 탈퇴, 그리고 회원정보를 수정할 수 있도록 했다. 서버, 클라이언트, DB 부분의 코드를 각각 작성할 때보다 한번에 작성하니까 M, V, C의 연관성을 좀 더 잘 파악할 수 있었다. OAuth 2.0 Github을 통한 소셜 로그인 인증방식을 구현했다. 원래는 서버에서 직접 인증과 접근권한에 대한 처리를 다 해줬었는데, 이 방식을 쓰면 인증은 깃헙이, 내 서버는 접근 권한에 대한 관리만 하면 됐다. 물론 작성하는 코드가 줄거나 서버에 사용.. 2021. 3. 9.
210307_TIL (MVC, 쿠키/세션 스프린트 복습) 🍎 오늘 한 일 MVC, 쿠키, 세션 복습 다시 파일을 받아서 MVC, Cookie, Session 스프린트를 풀어봤다. 전에는 그렇겠지하고 넘겼던 부분들이 중간중간 있어서 그 부분들을 다시 자세히 찾아보며 한번씩 제대로 짚고 넘어갈 수 있었다. 특히 Session 부분에서 express의 세션 관리용 미들웨어인 express-session에 대해 좀 더 알아봤다. save 메서드 없이 했는데도 잘 작동했는데, 레퍼런스에서는 썼길래, 왜인지 찾아봤더니 공식문서에 "This method is automatically called at the end of the HTTP response if the session data has been altered" 라고 나와있었다. 자동으로 호출되어서 상관이없던거였다... 2021. 3. 8.
210306_TIL (Typescript, Dev Matching) 🍎 오늘 한 일 Typescript 유튜브 영상으로 대충 왜 사용하는지 정도만 알고있었는데, Typescript로 이런저런 코드들을 테스트해봤다. 이름 그대로 Type을 지정하는 Javascript이기도 하고, 인터페이스나 클래스를 이용해서 입출력 데이터 타입을 확실히 지정할 수 있고, 덕분에 실수들을 방지할 수 있다는 장점이 있었다. 타입스크립트를 쓰면 함수나 인자들이 많아져도 자잘한 실수로 인해서 undefined가 뜨는 경우를 방지할 수 있을 것 같다. 프로그래머스 Dev Matching 순수 바닐라 자바스크립트만으로만 평가를 한다고해서 복습도 할 겸 가벼운 마음으로 참가해봤다. 세시간동안 페이지에서 기능의 일부분을 구현하는 과제였는데, 알아서 자동완성을 해주고 문법도 고쳐주던 익스텐션 하나 없이 .. 2021. 3. 7.
210305_TIL (JWT, 토큰기반인증) 🍎 오늘 배운 것 JWT, 토큰기반인증 Express 서버에서 JWT를 기반으로 회원 인증을 하는 시스템을 구현해봤다. 쿠키, 세션에 이어서 또 새로운 개념이라 개념에 대한 정리가 우선되어야할 것 같아서 정리부터했는데 막상 코드로 작성하려니까 다시 뒤죽박죽이 되는 느낌이었다. 정확히 어떤 차이점이 있는지는 좀 더 확실히 해둬야겠다. 일단 서버부분을 먼저 구현했는데, 클라이언트의 로그인 요청이 있다고 가정하고 ID와 비밀번호를 바다 데이터베이스에 존재하는지 확인했다. 존재할 경우, Access Token과 Refresh Token을 모두 생성해서 응답으로 돌려줬다. 이때는 암호화된 상태로 반환해줬다. jsonwebtoken 라이브러리를 사용해서 거의 옵션만 설정해주는 식이었다. AccessToken에 대한.. 2021. 3. 6.
210304_TIL (쿠키, 세션 기반 인증) 🍎 오늘 한 일 ✔️ 쿠키, 세션 기반 인증 구현 쿠키는 서버가 웹 브라우저에 정보를 저장하고 불러오는 수단이기 때문에 클라이언트에 접속 상태를 저장하고, 세션은 접속 상태에 대한 정보를 서버 메모리에 저장해둔다. 가장 먼저 https 통신을 위해서, mkcert라는 프로그램을 설치하고 local환경만의 인증서를 만들었다. http가 아니라 이제 https를 쓸 수 있게 되었다..! 기본적인 세팅을 하고 나서는 mysql과 sequelize를 사용해 데이터베이스를 만들어두고, express 를 이용해서 우선 서버를 만들었다. 그리고 쿠키 기반 인증과 세션기반 인증을 차례로 구현해봤다. 쿠키는 요청, 응답헤더의 setCookie와 Cookie부분을 작성해주는 식으로 주고받을 수 있었고, 세션은 expres.. 2021. 3. 5.
210303_TIL (Sequelize, Sequelize-cli) 🍎 오늘 한 일 ✔️ Sequelize, Sequelize-cli 긴 Url을 짧게 만들어 돌려주는 앱의 서버부분을 구현해봤다. urls라는 테이블을 하나 만들어서 방문 횟수와 url 등의 정보를 넣어두고, 나중에는 user테이블과 foreign key를 이용해 연결도 시켜봤다. 모델을 정의하는 Sequelize와 함께 마이그레이션을 도와주는 툴인 sequelize-cli도 설치했는데, 마이그레이션을 통해 모델로만 생성했던 것들이 실제 데이터베이스에 들어가는 과정을 보면서 하니까 뭔가 재밌기도 했다. ORM을 이용하니까 mySQL만 쓸 때와는 달리 쿼리문 없이 쉽게 데이터를 다룰 수 있게 돼서 좀더 익숙하고 좋은 것 같기도한데 아직은 더 능숙해지려면 적응이 필요할 것 같다. 생각보다 자료도 없어서 공식문.. 2021. 3. 3.
반응형