본문 바로가기

전체 글847

Node.js Express Json Beautifier 요즘은 Node.js에 관심이 많다.예전에 React.js와 React-Native로 토이 프로젝트들을 많이 진행했었다.뭔가 스택의 통일성이랄까. 같은 언어로 프론트/백을 할수 있다는 점이 마음에 들었고좀 더 깊이 이해할 수 있을것 같았다.튼 요즘은 대부분 API서버를 구축하고 있다.만들면서 장고가 살~짝 그리워졌던 점이 하나 있는데 바로 시각적인 문제였다.장고는 Rest framework를 사용하면 어드민 패널 등 사용자가 보는 모든 View를 기본적으로 이쁘게 꾸며줬다.그래서 데이터값들이 제대로 표현되고 있는지 확인하기도 쉬웠다.하지만 Node.js에는 당연히 그런 부분이 없다. 그래서 관련 자료를 찾아봤다.나는 현재 Express를 위에 올려서 사용하고 있는데, express json beautif.. 2018. 7. 18.
Sequelize.js 로 게시글-댓글 API 설계 방법 현재 Node.js로 API서버를 구축하고 있는데 통신하는 모듈로 Sequelize.js를 이용하고 있다. Django Rest framework를 사용할때는 또 그것만의 ORM문법을 배워서 사용했는데, 이젠 또 다시 문법을 공부해야한다. 심지어 document도 중구난방이라 배우기가 쉽진 않았다고 생각한다. 먼저 환경은 Node.js + Express + MySQL이다. 관계형 데이터베이스를 사용하고 있으므로 Sequelize의 Association 부분을 잘 살펴봐야 한다. 먼저 테이블의 구조는 다음과 같다. [article]- no(PK)- subject- content- created_at- updated_at [comment]- no(PK)- content- created_at- updated_.. 2018. 7. 18.
Sequelize.js Association belongsToMany 정리 Belongs-To-Many associationsBelongsToMany는 source를 여러개의 target에 연결할 때 사용한다. 게다가 target또한 여러개의 source에 연결될 수 있다.Project.belongsToMany(User, {through: 'UserProject'}); User.belongsToMany(Project, {through: 'UserProject'}); 위 코드는 projectId와 userId라는 외래키를 포함하고 있는 UserProject라는 새로운 모델을 생성할 것이다. 속성이 카멜케이스가 될지, 아닐지는 두개의 모델이 조인했을때에 따라 다르다. (이 경우에는 User와 Project)추가적으로, through 를 무조건 정의해줘야 한다.(예전에는 Sequel.. 2018. 7. 16.
Sequelize.js Association OneToMany(hasMany) 정리 이제 OneToMany(hasMany) 차례이다.http://docs.sequelizejs.com/manual/tutorial/associations.html에서 OneToMany() 부분을 번역했다. One-To-Many associations (hasMany)One-To-Many는 하나의 source에서 여러개의 target에 연결되어 있는 형태를 말한다. target들은 정확히 하나의 source에 연결되어있다.const User = sequelize.define('user', {/* ... */}) const Project = sequelize.define('project', {/* ... */}) // 먼저 hasMany 를 정의한다. Project.hasMany(User, {as: 'Worke.. 2018. 7. 16.
Sequelize.js Association hasOne 정리 두번째 내용인 hasOne() 관계에 대한 포스팅이다.이전 글과 마찬가지로 http://docs.sequelizejs.com/manual/tutorial/associations.html 이 글에서 hasOne() 부분만 따로 가져와서 번역했다. HasOnehasOne은 1:1관계에 대한 외래키가 target 모델에 있을 때 사용한다.const User = sequelize.define('user', {/* ... */}) const Project = sequelize.define('project', {/* ... */}) // One-way associations Project.hasOne(User) /* 이번 예제에서 hasOne은 User모델에 projectId 컬럼을 추가할 것이다. 게다가 Proj.. 2018. 7. 16.
Sequelize.js Association belongsTo 정리 개인적으로 ORM을 사용하는건 굉장히 불편하다.SQL Statement에 익숙하지 않은 사람들은 ORM을 통해 사용하는 언어의 형태로 쉽게 작성이가능하여 편하다고 느껴진다고 하는데, 나같은 경우에는 그냥 SQL문으로는 이렇게 하면 되겠지라고쉽게 생각이 들어도 ORM에 맞춰서 코드를 작성하려고 하다 보면 어려웠다.또한 오늘은 Sequelize.js에 대해 작성하는 글이지만 이전에 장고를 사용하면서사용했던 ORM은 또 그것만의 문법이 존재했다.튼, 요즘에는 Node.js를 공부하고 있는데 데이터베이스와 통신하기 위해 Sequelize.js를 사용하고 있고관계 설정에 대한 부분이 헷갈리는 부분이 조금씩 존재하여 아예 그냥 통번역을 해버리기로 했다.본 포스팅은 http://docs.sequelizejs.com/.. 2018. 7. 15.