TIL_20.06.16~17(토,일) - MVC모델, JOIN, DB

nRecode·2020년 6월 14일
0

TodayILearned

목록 보기
60/95
post-thumbnail

MVC모델

정돈 된,의도 된 코드. 코드의 가독성, 관리성, 퀄리티 부분에서 좋음

Model - 데이터의 정보를 가지고 있음
자신이 데이터를 가지고 있다던지,,,Controller와 대화를 한다
model에서 주로 쿼리문을 이용해서 데이터를 가져오는 형식

View - 유저가 보는 화면을 보여준다.
Controller와만 대화한다.

Controller - View에서 이벤트 발생하면 Model로 바로 전달되는 것이 아니라 Controller에서 가공의 과정을 거치게 된다.

수도코드는 아래와 같다.(출처는 생활코딩)

/routes
    Users/profile/:id = Users.getProfile(id)

/controllers
    Class User{
        function getProfile(id){
            Profile = this.UserModel.getProfile(id) //Model이 데이터를 가져온 것 
    
            renderView(‘user/profile’,profile)
        } 
    }
/models
    Class UserModel{
        Function getProfile(id){
            data = this.db.get(’SELECT * FROM users WHERE id = id’)
            return data;
        }
    }
/views
    /users    
        /profile
        <h1>{{profile.name}}</h1>
        <ul>
            <li>{{profile.email}}</li>
        </ul>

JOIN실습

FOREIGN KEY로 서로 연결(?)되어있는 테이블들 사이에서 join을 사용하여 원하는 정보를 찾을 수 있게 쿼리문을 작성해보는 시간을 가졌다.

SPRINT 추가 학습

스프린트 진행하면서 어떻게 진행해야 하나 감이 전혀 안잡혔었는데, 페어분이랑 코딩하면서 테케부터 조지는게 답이구나... 라고 확실히 알 수 있었다.,,,

그리고 https://github.com/mysqljs/mysql 에서 어떻게 작성해야 하는지에 대한 답을 거의 찾을 수 있었다. 비동기 처리 공부하면서 배웠던 콜백을 활용하여 코드를 작성하였는데 다음에 혼자 학습할 땐 프라미스르 활용하여 하는 방법도 따로 공부해보고 싶었다.

그리고 환경변수... db의 password를 환경변수로 설정해 줬는데, 각 터미널마다 입력을 해주지 않아서 터미널을 따로 두고 실행했을때 db가 실행되지 않는 문제 때문에 시간을 많이 버렸다ㅜㅜ... 꼭 다 환경변수 입력해주기!

profile
안정성, 확장성 있는 서버를 구축하고 가꾸는 개발자를 목표로 공부하고 있습니다. 🤔🤔🤔🤔 부족하기에 맞지 않는 내용이 있을 수 있습니다. 가감없이 피드백 해주시면 정말 감사하겠습니다..🙏

0개의 댓글