목록what I Learnd/WIL (9)
HANA -J
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1GSUF/btrqMkfBZeQ/aafgcFRM0szPqiZPpxGAt1/img.jpg)
[네트워크 프록시] > 프록시 서버? 클라이언트와 서버간의 중계 서버로 통신을 대리 수행하는 서버이다. 캐시/보안/트래픽분산등 여러장점을 가질 수 있다. 1. Forward Proxy(일반적으로 proxy라고 부르는것) 특징 - 캐싱 : 전소이간을 절약하고, 불필요한 외부 전송이 필요 없어져 네트워크 병목현상을 방지할 수 있다. - 익명성 : 서버가 응답 받은 요청이 어디서 온건지 알수 없다. (서버가 받은 요청 IP = Proxy IP) 2. Reverse Proxy 특징은 포워드 프록시와 같다. [Load balancer] 여러대의 서버가 분산 처리 할 수 있도록 요청을 나누어 주는 서비스 OSI 7Layer를 기준으로 대표적으로 L4, L7로 나누어 진다. > OSI 7Layer 더보기 > OSI ..
express 에서 싱글톤 패턴사용 => app.js파일에서 전역에서 사용되는 인스턴스를 딱 1개만 생성시켜 메모리 낭비를 줄일 수 있다. class Server { public app :express.Application; constructor(){ const app:express.Application= express(); this.app = app; } private setRoute(){ this.app.use(catsRouter); } private setMiddleware(){ //* json middleware this.app.use(express.json()); this.setRoute(); //404 미들웨어 맨 아래 this.app.use((req, res, next)=>{ res.send..
API명세 원래는 api작성시 라우터 이름을 활용해야 된다고만 생각했었는데, 중간멘토링 이후 그것이 잘못되었다는 것을 배웠다. ex) POST /api/login (로그인 요청) POST /api/user/image (회원 이미지 업로드) GET /api/users/:userId/:postId (한 유저의 한개의 포스트 가져오기) DB설계 시 foreignKey 작업 시 관계를 양쪽에 작성했던 문제 한 쪽만 작성해서 중복이 없게 함 ex) db.Post.belongsTo(db.User, { foreignKey: 'userID', targetKey: 'userId', }); ex) db.User.hasMany(db.Post); sequelize findOne으로 가져온 데이터가 Json객체형식으로 가져와야..
> 첫 협업을 진행하며 느낀 아쉬운 점 - 나의 부족한 실력이 너무나 아쉬웠다. 이 기능을 추가함으로써 추가되어야할 데이터들을 넓게 생각하지 못해서 막상 코드를 짤 때 되서 또 API명세를 수정해야 했다. 여러모로 팀원분들께 혼선을 준거 같다. > 뿌듯한 점 - 그럼에도 불구하고 뒤죽박죽이던 코드들을 합쳐서 어느정도 구현을 한점 > 어려웠던 점 - 내가 조율해서 진행해도 될 문제와 내가 수정을 해도 되는 부분의 경계를 몰라서 우물쭈물 하는동안에.. 기능구현을 마무리 못했다. 어떻게 대화를 통해 조율을 하고 팀원분들께 내가 생각했던 flow를 그대로 전달하는것 그게 가장 어려웠다. > 좋았던 점 등 - 무엇보다 협업을 했다는게 가장 좋았다. 리액트 팀원분들이 짧은 시간에 너무 잘 하셔셔,,, 정말 별거 없..
> 2021/11/29- 2021/12/04 >노드 심화 3주차 - 테스트 코드 https://hana-j.tistory.com/43 TIL -TDD >2021/11/27 테스트 주도 개발을 하는 이유? 1. 디버깅 시간을 단축해준다. 테스팅 환경이 구축되어있다면 자동화 된 유닛 테스팅으로 특정 버그를 쉽게 찾아낼 수 있다. 2. 테스트 코드와 함께 작성 hana-j.tistory.com > 테스트 예시 //product.test.js 테스트 파일 하나 생성, 익스포트 했던 모듈 임포트 const productController = require('../../controller/products'); //컨트롤러 파일 const productModel = require('../../models/Produc..
> 2021/11/22 - 2021/11/27 Node.js 기본주차 이번주차는 지난주에 이어서 CRUD게시판에 회원기능과 댓글기능을 추가 하는 거였다. 하고나서 하면서 깨달은 점인데 나는 아직 REST의 개념이 부족하고 REST하게 클린하게 코드를 적지 못한다. 물론 내가 코드를 다 짜서 기능을 구현하는거라 어쩔 수 없나? 그런 생각이 들지만... 나는 내가 직접 코드를 구현할 수 있는 사람이 되고 싶은데 어떻게 그런 사람이 될 수 있는지 아직 모르겟다.. 잘하고 싶은데 잘 안되니까 좀 짜증났나?? 이번주는 좀 그랬다 🥲 >ORM? Object-Relational mapping 객체관계매핑의 약어로 데이터베이스와 객체지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체지..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nG5Vb/btrlFa20kx3/sCL91tJlmczONZ75GMEzj0/img.png)
> 2021/11/15 - 2021/11/20 >Node.js 입문 주차 지난 TIL에 Express에 이어서 1. NPM? NodePackageManager의 약어로 패키지를 관리하는 작업을 안전하게, 자동화 할 수 있게 해주는 도구이다. npm을 통해 패키지또는 모듈이라고 불리는 자바스크립트 소프트웨어를 자신의 프로젝트에 설치할 수 있다. >패키지 : package.json으로 설명되는 파일 또는 디렉토리 >패키지 관리: 패키지를 설치, 업데이트, 수정, 삭제 하는 작업 > 모듈 : node.js의 require()함수로 로드 될 수 있는 node_modules 디렉토리안의 파일 또는 디렉토리이다. 2. package.json? package.json은 프로젝트의 정보를 정의하고, 의존하는 패키지 버..
> 2021/11/08 - 2021/11/13 >JavaScript 1. ECMAScript? ECMAScript는 자바스크립트의 토대를 구성하는 스크립트 프로그래밍 언어 명세 이다. 자바스크립트를 표준화하기 위해 만들어졌다. 2. 스크립트 언어? 프로그래밍 언어의 한 종류로, 기존에 이미 존재하는 소프트웨어를 제어하기 위한 용도로 쓰이는 언어이다. 응용 소프트웨어는 컴파일러를 사용하는 언어에 의해 기계어로 번역되어 실행되기 때문에, 수정이 필요하면 컴파일을 다시해주어한다. 이 때문에 수정이 빈번하게 발생하는 부분을 바로 수정해주기위해 많이 사용한다. 응용 소프트웨어에서 스크립트 언어에 맞는 API를 제공하고 소프트웨어와 상호작용하며 작동한다. 인터프리터 언어와 다르다 !! 스크립트 언어 용도상 인터프리..