본문 바로가기

Daily89

210313_TIL 🍎 오늘 한 일 알고리즘 공부 밀린 토이 문제도 몇개 풀고, 특히 비슷한듯 조금씩 다른 정렬 알고리즘에 대한 공부를 했다. merge sort, quick sort, radix sort....등이 있었는데, merge sort는 표준 라이브러리에서 정렬을 구현할 때 퀵 정렬이나 힙 정렬의 대안으로도 사용될 정도로 최적화된 알고리즘이라고 한다. 사실 개념과 장단점을 각각은 이해하겠는데 언제 뭐가 더 효율적일지에 대해서는 아직 정확히 구분하지는 못하겠다., 독서 정신없어서 한동안 책을 제대로 못읽었던 것 같은데, 오랜만에 느긋하게 책을 읽었다. 프로젝트가 서쪽으로 간 까닭은 이라는 제목의 책인데, 협업하는 방식을 짧막하게 여러 주제로 다룬 책이라 내가 협업하는 데 있어 어떤 점이 부족하고, 좀 더 신경써야하.. 2021. 3. 14.
210312_TIL 🍎 오늘 한 일 React, CSS 연습 하나의 CSS 파일에서 모든 스타일링을 하는게 아니라, React의 컴포넌트를 위주로 스타일링을 해보려고 연습했다. SCSS로 기본적인 처리를 하고, 몇몇 컴포넌트들은 styled-components 라이브러리를 사용해 스타일을 적용했다. 기본적인 사용방법은 익힌 것 같은데 언제 따로 파일에 작성해야하고, 언제 styled-components 로 정의해야 하는지 그 경계에 대해서는 좀 더 공부할 것 같다. 추가적으로 일정 크기 이하로 줄어들면 media-query를 이용해 레이아웃이 바뀌도록 반응형 웹을 구축하는 연습도 했고, 스크롤 위치에 따라 다른 효과를 나타내는 인터랙티브한 페이지를 만들어보기도 했다. 오랜만에 CSS에 집중해보니까 이벤트나 position,.. 2021. 3. 13.
210311_TIL (HTTPS 배포..) 🍎 오늘 한 일 AWS 정말 어제부터 이틀 내내 AWS 페이지에만 머물러있던 것 같다..ㅎㅎ Let's Encrypt로 서버에, ACM으로 클라이언트에 권한을 부여해줬다. 가장 큰 문제는 클라이언트와 서버를 모두 HTTPS로 통신하도록 해야했는데, 서버부분의 인증 처리가 제대로 안돼서 https 요청을 처리하지 못하는 것이었다. 처음에는 문제가 생겨도 클라이언트 문제인지, 서버 문제인지, 어디서부터 뜯어 고쳐야하는지 감이 잘 안잡혀서 인증서를 삭제했다 다시 발급받았다 하기도하고, 버킷을 삭제도 해보고 지역문제인가 싶어서 설정도 바꿔보고.. 정말 이런 저런 시도들을 해봤는데 하루종일 보면서 이렇게 삽질을 하다보니 알게모르게 낯설었던 개념들이 익숙해지게 되기도하고 전반적인 흐름?을 알게된 것 같다..! 결국.. 2021. 3. 12.
210310_TIL (내 도메인이 생긴날) 🍎 오늘 한 일 AWS 굉장히 새로운 개념들이 넘쳐들어온 날이다. 배포라고해서 그냥 어디 파일을 올리면 되는게 아닌가 싶었는데 EC2, RDS, S3, Route53 등,, 서비스가 엄청 다양해서 알아둬야할 것도 정말 많았다. 아예 새로운 개념들이라 정리하는데도 시간을 많이 써야했다. 먼저 EC2에다가 서버를 올리고, RDS를 이용해서 DB도 올렸다. S3으로는 클라이언트 부분을 생성했다. joootopia.com이라는 도메인도 신청해서 승인받았는데, Route53을 통해서 내가 만든 도메인과 연결시킬 수도 있었다. Let's Encrypt 를 통해 무료로 인증서도 발급받고, CloudFront를 통해서 배포를 해서 HTTPS 환경에서도 잘 작동할 수 있게 만들었다. 나만의 주소를 갖게된 것도 뭔가 신나.. 2021. 3. 11.
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.
210303_TIL (Sequelize, Sequelize-cli) 🍎 오늘 한 일 ✔️ Sequelize, Sequelize-cli 긴 Url을 짧게 만들어 돌려주는 앱의 서버부분을 구현해봤다. urls라는 테이블을 하나 만들어서 방문 횟수와 url 등의 정보를 넣어두고, 나중에는 user테이블과 foreign key를 이용해 연결도 시켜봤다. 모델을 정의하는 Sequelize와 함께 마이그레이션을 도와주는 툴인 sequelize-cli도 설치했는데, 마이그레이션을 통해 모델로만 생성했던 것들이 실제 데이터베이스에 들어가는 과정을 보면서 하니까 뭔가 재밌기도 했다. ORM을 이용하니까 mySQL만 쓸 때와는 달리 쿼리문 없이 쉽게 데이터를 다룰 수 있게 돼서 좀더 익숙하고 좋은 것 같기도한데 아직은 더 능숙해지려면 적응이 필요할 것 같다. 생각보다 자료도 없어서 공식문.. 2021. 3. 3.
210227_TIL (MongoDB, Mongoose) 🍎 오늘 한 일 ✔️ MongoDB, Mongoose MySQL을 써보고 나니까 NoSQL은 어떻게 쓰는지 궁금해져서 Javascript를 기반으로 하는 MongoDB, 그리고 mongoose 라이브러리를 써봤다. 먼저 공식문서를 보면서 설치하고 데이터베이스 서버에 접속을 해봤다. 유저 관련 설정을 하다가 오류가 생겨서 해결하는데 시간을 좀 쓰기도 했다 ㅠ.ㅠ 몽고디비는 테이블이 없어서 자유롭게 데이터를 넣을 수 있지만, 때론 이런 자유로움이 불편함을 초래하기도 한다. 예를 들어 실수로 잘못된 자료형 데이터를 넣거나, 없는 필드의 데이터를 넣을 수도 있다. 몽구스는 몽고디비에 데이터를 넣기 전에 노드 서버단에서 데이터를 한번 필터링해주는 역할을 한다. 오늘은 이런 몽구스를 이용해서 Node.js와 Mon.. 2021. 3. 1.
210226_TIL (DB설계, SQL) 🍎 오늘 한 일 ✔️ DATABASE 설계 며칠 전에 인스타그램 스키마를 만들어봤었는데, 테이블들 간의 관계나 데이터 종류들을 잘 표현한 것 같지 않기도 하고, 어떤 순서로 접근해야 좀 더 빠짐없이 데이터베이스를 제대로 설계할 수 있을 지를 알고싶어서 데이터베이스 설계 방법에 대해 공부했다. 기본적으로 설계는 요구사항 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현 단계로 이어지는데, 개념적 설계를 하는 부분에 대한 이해가 부족했었다는 것을 깨달았다. 명세서가 주어지면, 요구사항을 보며 객체와 속성을 추출해내고, 객체들 간의 관계를 잘 정리해두면 나머지 설계단계가 굉장히 수월하게 진행될 것 같았다. 관계도를 다이어그램으로 그려보는 연습을 좀더 해야할 것 같다. ✔️ SQL - 다중쿼리 처리.. 2021. 2. 27.
반응형