일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 교육철학과 교육사
- array
- webServlet
- maven
- npm
- 탐색알고리즘
- 그래프탐색
- OAuth
- 자료구조
- 백엔드공부
- 프로젝트진행
- 최단경로문제
- 내돈내산
- Spring
- 백엔드스쿨
- 백엔드
- 자바스크립트
- 원격근무
- 개발자
- BFS
- 제로베이스
- Queue
- 시급합니다
- Node.js
- JavaScript
- OpenAPI프로젝트
- YBM전화영어
- 전화영어
- java
- 탄력근무
- Today
- Total
목록분류 전체보기 (84)
개발자취
1. 프로젝트 설계 1.1 프로젝트 개요 본 프로젝트는 앞서 배운 개념을 바탕으로 하여 OAuth를 이용한 소셜 로그인 구현 및 블로그 포스팅 웹앱을 만드는 것입니다. 본 앱을 만들기 위해 수강한 강의에서는 모바일에 최적화된 앱으로 제작하였으나, 쓰니의 개발 능력 향상을 위해 웹에 최적화된 앱의 형태로 변형하여 제작하였습니다. 1.2 아키텍처 설계 1.2.1 OAuth flow - Vendor - Naver - Facebook - Kakao - 각각의 OAuth provider에 개발자 계정을 만들어서 그에 따른 설정을 해야함. - access token -> (platformUserId, platform) -> 회원가입 / 로그인 처리 - 위 vendor를 통한 로그인 처리를 위해서는 HTTPS 상에서..
RDB 기본 개념 1 | RDB란? RDB는 Relational DataBase로, 가장 고전적인 DB 모델로써 테이블을 생성하여 그에 따른 제약조건에 맞게 데이터를 저장한다. 이때, SQL문으로 데이터를 CRUD 할 수 있다. DB의 구성 요소 data table의 가로줄 : 행 (row), data table의 세로줄 : 열 (column, attribute) data table 덩어리 : table(relation) row를 구별하는 값 : primary key 관계형 데이터베이스는 NoSQL과는 다르게 다른 테이블에서 참조할 수 있도록 relationship을 형성하고 있다. 그래서 RDB가 잘 짜여져만 있다면, 데이터 중복이 거의 없다. 이는 곧 일관성이 높다는 것을 의미한다. /*패캠 강의 인..
1. 프로젝트 설계 nodemon, eslint, prettier를 생각해보자. 앞서 언급한 패키지를 프로젝트 경로에 설치해서 사용한다면, 직접 구현하기 복잡한 개발 과정을 간소화 시킬 수 있어 개발 환경을 보다 간편하게 형성할 수 있다. 또한 /*야 너두? 야 나두! 처럼*/ 커스터마이징하게 만든 패키지가 npm에서 수많은 개발자들의 다운로드 대상이 된다면, 개발 능력 웹내 인증으로 이보다 더한 업적이 존재할까 싶다. 이처럼 패키지 개발은 대단한 업적을 지닌 개발자들이 만든 패키지처럼 개발 환경을 효율적으로 만들고, 최적화된 개발환경 세팅에 도움을 줄 수 있다. 따라서 본 프로젝트를 통해 /*작지만 소중한 업적(?)인*/ Timer 패키지를 만들어볼 것이다. 1.1 프로젝트 개요 본 프로젝트는 다음과 ..
1. 프로젝트 설계 협업을 통한 프로젝트가 진행됨에 따라 프로젝트 내에 크고 작은 버그가 발생될 수 있다. 이때 발생된 버그 이슈는 프로젝트 리포지토리 ISSUE 탭에 남겨 이를 협업하는 개발자들과 공유하곤 한다. 그런데 이와 관련하여 로컬에서 원격 리포지토리에 접근하여 버그 및 기타 논의거리에 접근할 수 있게 된다면 보다 편리하게 개발할 수 있을 것이라 생각한다. 따라서 본 토이 프로젝트를 통해 로컬에서 접근 가능한 GITHUB 관리 CLI를 만들 것이다. 1.1 프로젝트 개요 본 프로젝트에서는 다음과 같은 메커니즘으로 프로젝트를 진행할 것이다. 원격 리포지토리에 직접 접근을 할 수 있도록 github token을 발급 받아 'octokit'을 통해 'commander'로 접근할 수 있는 환경을 만든다..
1. 프로젝트 설계 본 프로젝트는 키워드로 검색하여 나온 이미지를 원하는 사이즈로 리사이징해서 돌려주는 서버를 구현하는 것이다. 1.1 프로젝트 개요 본 프로젝트 구현에 앞서, /*개발을 수월하게 하기 위해*/ 이미지를 자유롭게 불러오는 웹 서비스가 필요하다. 따라서 본 프로젝트는 unsplash.com의 api를 통해 이미지 소스를 불러올 수 있도록 세팅하였다. 그리고 이미지 리사이징을 구현하기 위해 node의 sharp 패키지를 사용하였다. 본 패키지를 선택한 이유는 /*강의 영상에서 선택한 탓이 가장 크지만, */ 코어 부분이 c++로 짜여있어 이미지 리사이징, 포맷 컨버팅과 같은 동작을 훨씬 빠르게 하기 때문이다. 1.2 Frontend UI 디자인 서버만 구현하므로 frontend ui 디자인은..
1. 프로젝트 설계 1.1 요구사항 설정 - 실시간 채팅 서비스를 간단한 형태로 제작 - 인증처리는 없음 - 채팅 내역은 데이터베이스에 저장하고, 이를 활용할 수 있도록 함. 1.2 Frontend UI 디자인 채팅 내역은 polling(폴링) 형태로 처리하지 않고, 실시간으로 채팅내역을 저장할 수 있는 구조로 한다. *폴링 : 실시간으로 장치 또는 프로그램의 처리상태를 주기적으로 체크하는 자료처리방식 Pug : Template engine TailwindCss : css framework 1.3 Backend Web Socket : 서버-클라이언트가 실시간으로 정보를 주고받을 수 있는 통신 프로토콜(웹 표준에 의하면 2015년부터 완벽하게 사용하게 되었음, 모든 브라우저에서 지원하지 않았을 때는 soc..
1. 자동화 테스트 모듈 사용의 목적 프로젝트에 다양한 기능이 추가되고 복잡해지면서 매번 작성하는 코드 시나리오를 하나씩 테스트 하는 것은 비용면에서 굉장히 비효율적이라 할 수 있다. 이러한 상황에서 리팩토링까지 하게 된다면, 아마도 작성해놓은 코드를 하나씩 검증하며 짜야하는 수고가 필요할 것이다. 이러한 이유로 테스트를 자동화하는 도구가 필요하고, 이때 사용하는 테스트 기법으로는 유닛 테스트(unit test), 통합 테스트(integration test)가 있다. 1.1 유닛 테스트(unit test) 유닛 테스트(unit test)는 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차로 모든 함수와 메소드에 대한 테스트 케이스(test case)를 작성하는 과정을 말한다. http..
1. REST(Representational State Transfer) 1.1 REST 정의 REST는 효율적, 안정적이며 확장가능한 분산시스템을 가져올 수 있는 소프트웨어 아키텍처 디자인 제약의 모음이다. dev-린이인 내가 이해하기에는 위 정의가 조금 버거워서, 쉽게 풀어보고자 한다. REST한 방식으로 분산 시스템을 가져오면 좀 더 효율적이고 안정적이다. 그러한 방식으로 만들기 위해서는 소프트웨어 아키텍처 디자인 제약이 필요하다. 고로 REST는 좀 더 안정적인 시스템을 구축하기 위해 만들어놓은 Rule을 잘 지켰는지를 판단하는 아키텍처 스타일이다. REST한 형태로 만들어진 시스템은 좀 더 강조한 표현으로 RESTful하다고 할 수 있다. REST Web 1.2 REST를 구성하는 것 자원(RE..
물론 당신은 특별하기를 원합니다. 누구나 다 그렇듯이 말입니다. 그런 소망은 숨쉬는 것만큼 자연스럽고 정당한 것입니다. 그런데 여기 아주 기쁜 소식이 있습니다. 그것은 당신이 이미 특별하다는 것입니다!/*** 중략 ***/뿐만 아니라 당신은 아직 완성되지 않았습니다. 당신은 자라고 있으니까요. 당신은 더욱더 특별해지기 위해 자라나는 과정에 있습니다./*** 중략 ***/시간은 짧습니다. 어제는 이미 지나갔으니 오늘을 사십시오. 자신이 자라도록 힘씀으로써 특별한 존재가 되십시오. 지금 시작하십시오.
Express Node.js를 위한 web framework의 일종, Express 미들웨어를 기반으로 한 웹 애플리케이션 구축, 에러 핸들링, static file serving 등을 처리함. 웹 애플리케이션을 유연하게 만들 수 있다. Express - Node.js 웹 애플리케이션 프레임워크 Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크 $ npm install express --save expressjs.com 미들웨어 미들웨어는 express가 실행되면서 하나의 request가 실행될 때 거치는 모든 함수를 의미한다. 다시 말해, 요청 오브젝트(req), 응답 오브젝트 (res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수를 의미한..