Dev(40)
-
레거시 코드에 대한 고민
현재 개발 중인 웹애플리케이션은 프론트와 백엔드 소스가 분리되어 있다. 프론트는 Vue.js로 개발되어 있고, 백엔드는 스프링부트 기반의 자바로 되어 있다. 기존 개발인력이 모두 퇴사하고 내가 입사하게 된 경우라서, 개발인력이 나 혼자이다 보니 서버관리부터 프론트와 백엔드 개발을 혼자 작업해야 했는데, 업무량은 논외로 치고 기존 백엔드 소스를 확인해보니 큰 문제점들이 있었다. 그 중에 몇 가지를 적어보자면, 😒 Controller에 모든 비즈니스 로직 구현 다른 모든 문제점 중에서 이 부분이 제일 짜증나는 부분이었다. 컨트롤러단에 비즈니스 로직이 구현돼 있다보니, 중복된 코드가 여기저기 산재되어 있어서 기존 기능을 수정하려면 여기저기를 다 뜯어 고쳐야 하는 문제가 있었다. 서비스 클래스는 데이터를 처리하..
2021.06.26 -
[NODE 강의] module.exports
[클립명] 1. module.exports 2. Event loop 자료구조 3. Event loop 실습 모듈(module)이란? node.js에서 모듈이란 다양한 기능들이 코드화되어 모여 있는 하나의 파일을 의미한다. 서비스가 대형화될수록 관련 기능을 하나의 파일로 모으고 모듈화시키는 것이 중요해진다. 여러 가지 기능을 하나의 파일에 전부 구현하다보면 유지보수 및 버그 수정이 어려워지기 때문에 시간이 지날수록 감당하기 힘든 문제가 발생하기 때문이다. 이런 모듈들이 모이고 모여서 프로그램을 이루기 때문에 내가 코딩하고 있는 소스로 외부 모듈의 기능을 불러와서 사용하는 일이 중요하며 가장 기초가 되는 것이다. node.js에서는 다른 모듈을 사용할 때는 require, 모듈을 해당 스코프 밖으로 보낼 때..
2021.05.02 -
[NODE 강의] Semantic Versioning (제품 버전 관리)
[클립명] 1. Semantinc Versioning 2. npx 3. nodemon 오늘은 Node.js 강의 중에서 Semantic versioning에 대한 강의 클립을 시청하였다. 이 부분은 현업에서도 많은 관계가 있는 부분이라서 엄청 좋았다. npm을 이용하여 패키지를 설치하고, pacakage.json을 열어보면 위와 같이 패키지명과 세자리 단위로 된 숫자들을 볼 수 있는데, 이것이 바로 해당 패키지의 버전을 의미한다. 자 그럼 이 버전은 각 자리별로 어떤 의미가 있고, 어떻게 관리되는 것일까? Semantic versioning 직역하자면, '의미있는 버전관리' 정도가 될 것 같다. 자사 솔루션이나 서비스가 업그레이드 or 버그 패치 등이 이루어지면서 버전 관리가 필요하게 되는데, 이 버전관..
2021.05.02 -
[NODE 강의] Redis
[클립명] 1. Redis 개요 2. Redis 사용하기 3. Redis Node.js 4. Redis 캐싱 오늘은 패캠 강의에서 나온 Redis에 대해 정리를 해보았다. 강의에 없는 내용들은 구글링을 통해 정리했다. Redis (Remote Dictionary Server) Redis는 디스크가 아닌 메모리에 Key-Value 형식의 다양한 데이터타입으로 데이터를 저장할 수 있게 해주는 오픈 소스 솔루션이다. 디스크에 저장된 데이터보다 메모리에 저장된 데이터를 꺼내서 사용하는 것이 속도면에서 훨씬 빠르기 때문에 보통 캐싱이나 세션관리에 사용하게 된다고 한다. 웹애플리케이션의 데이터 조회를 모두 DB접근을 통해 쿼리문을 날려서 해결하게 된다면 그만큼 DB서버에 부하가 생길 수 있다. 이럴 때 Redis를..
2021.04.13 -
[NODE 강의] AWS 프리티어 EC2 인스턴스 생성
[클립명] 1. AWS 개요 2. Window 서버 접속 3. Mac 서버 접속 나는 현재 네이버 클라우드 서버를 사용 중인데, AWS로 바꿔야 하지 않을까 하는 막연한 생각만 하고 있는 중이다. 워낙에 AWS가 대세이기도 하고, AWS 자격증까지 있으니... 구글링해보면 구글 클라우드, MS 애져, 네이버 클라우드, AWS에 대한 비교글이 좀 보이는데, 관심있다면 한 번 찾아보는 것도 좋을 것 같다. ■ AWS 배포 강의 구성 패스트캠퍼스 Node 웹 프로그래밍 올인원 패키지 강의에는 AWS 배포 관련된 강의 클립이 있다. 강의는 아래와 같이 구성되어 있다. AWS에 무료 계정을 생성하고 EC2 서비스를 이용하여 서버를 구성하고 소스를 업로드하여 서비스를 배포하는 과정이다. - AWS 개요 - Wind..
2021.04.08 -
[NODE 강의] GraphQL 데이터 CRUD
[클립명] 1. 데이터 쓰기 2. 데이터 수정, 삭제 3. 클라이언트 사용하기 이전 시간에는 graphQL이 무엇인지 알아보았다. 이제 패캠 nodejs 강의에서 설명해준 graphQL을 이용하여 데이터를 CRUD 하는 것에 대한 방법에 대해 정리해보자. 우선 폴더를 하나 만들고 필요한 노드 패키지를 설치한다. //NPM 초기화 $ npm init //연습에 필요한 노드 패키지 설치 $ npm install graphql $ npm install express $ npm install express-graphql 🎈데이터 읽기 / 쓰기 const express = require('express'); const {graphqlHTTP} = require('express-graphql'); const {bu..
2021.04.03