Server7 Django, Spring, Node.js의 특징과 장단점 💎 Django Framework 특징 MVT 패턴 ORM 기반 프레임워크 MVT 패턴이란? Model: 데이터 관련 DB View: Model과 View를 연결해주며, 함수 정의 Tamplate: 실제로 화면을 보여주는 인터페이스 ORM 기반 프레임워크란? 객체 지행 프로그래밍에서 객체라는 개념을 구현한 클래스와 RDB에 쓰이는 데이터인 테이블을 자동으로 연결하는 것으로 SQL문이 필요 없다. 장고 MVT 패턴과 파일 구조 장고는 Urls.py에서 넘어온 요청을 View.py의 함수와 연결되고 함수에서 model.py에서 데이터를 읽어와서 함수를 수행한 뒤 render 함수를 통해서 template에 딕셔너리 형태로 데이터를 넘겨주고 넘겨받은 데이터를 가지고 html에서 작업을 수행한다. Django의.. 2021. 7. 14. 인증 방법인 Cookie와 Session에 대해 알아보자 HTTP 프로토콜은 무상태 프로토콜로써 어떠한 상태도 유지하지 않고 비연결성이다. (Stateless + Connectionless) 따라서 로그인을 하면 테이터 요청에 대해 일시적으로 이루어진다. 그러면 서버에게 정보를 요청한 사용자가 이전의 사용자와 같은 사용자인지 확인하는 것이 필요하다. 즉 인증이 필요한 것이다. 인증이란 무엇일까 ❓ ✌ 인증 API 요청에 대해 사용가능한 사용자인지 확인하는 절차로 클라이언트가 주장하는 사용자와 같은 사용자인지 확인한다. ✌ 인가 사용자가 특정 자원에 대한 접근 권한이 있는지 권한을 체크하는 것으로 클라이언트가 하고자 하는 작업이 해당 클라이언트에게 허가된 작업인지 확인한다. 따라서 사용자의 권한 레벨에 따라 접근할 수 있는 부분을 제한할 수 있다. 인증 방법에 .. 2021. 3. 24. Spring AOP 알아보기 AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍으로 하나의 비즈니스 로직은 관심사와 핵심적인 로직으로 이루어져 있다. 여기서 관심사란 소스 코드상에서 계속 반복되는 부분으로 예외처리, 인증 등이 해당된다. 즉 주변 로직, 부가기능으로 볼 수 있다. 💡 관심사의 예 1. 파라미터가 올바르게 들어왔을까?? 2. 사용자의 인증을 적절히 받아왔을까?? 3. 이 작업에서 발생할 수 있는 예외 처리는 어떻게 해야 할까?? 즉 AOP의 목표는 핵심적인 로직에서 관심사를 분리하여 재사용하겠다는 것이다. 이것을 관심사의 분리(=Separate concerns)라고 부른다. 관심사를 분리하면 코드의 반복을 줄일 수 있기 때문이다. AOP 개발방식에서 개발자가 주의해야 하는 것은 무엇일까 .. 2021. 3. 21. Async와 Await로 흐름 제어하기 Promise을 사용하여 흐름을 제어할 경우 callback hell에 빠질 수 있고 코드도 복잡해진다. 따라서 코드의 가독성을 높이고 Promise의 단점을 보환 하고자 async와 await가 나왔다. Async Promise를 사용하지 않고 효과적으로 callback hell 해결, 암묵적으로 promise를 반환 Await Promise를 기다림(성공 혹은 실패), async로 정의된 내부에서만 사용 가능 💡 Async와 Await 기본 형태 💡 Async와 Await 활용해보기 함수명은 Signup으로 회원가입을 할 때 사용하는 컨트롤러이다. checkUser 비동기 처리 메서드는 데이터베이스에 접근하여 데이터를 가지고 오는 것이기에 데이터를 가지고 온 후에 코드가 실행되어 예외처리를 하여야 한.. 2021. 3. 16. 비동기 방식 Callback function / Promise 알아보기 동기 : I/O 작업이 진행되는 동안 작업이 중단된 채 대기하는 방식으로 요청을 하고 완료할 때까지 무한정 기다려야 한다. 비동기 : 요청을 하고 바로 제어권을 돌려받는 방식으로 요청을 하고 기다리지 않고 다른 작업을 처리하다가 결과가 오면 처리하므로 자원을 효율적으로 사용할 수 있다. 비동기의 장점 1. 네트워크 응답 처리 - 서버에게 요청을 보냈을 때 응답이 언제 올지 알 수 없으므로 비동기로 실행 2. 파일 시스템 작업 3. 알람 같은 의도적인 시간 지연이 필요한 경우 - 스레드의 블록킹이 발생해 응답이 올 때까지 화면이 멈춰있을 것이다. 이런 경우를 피하기 위해 비동기로 실행 Node.js는 비동기로 실행이 되므로 노드들 사이에 순차적인 작업이 일어나야 하는 경우 흐름을 제어해야 한다. 비동기로 .. 2021. 2. 9. JWT에 대해 알아보자 ❗ JWT란 API 요청이 들어왔을 경우 사용 가능한 사용자인지 확인하는 절차(=인증) 방법으로써 JSON WEB TOKEN이다. 클라이언트와 서버 사이에서 JSON 객체를 사용하여 정보를 안전성 있게 전달할 수 있다. 👀 TOKEN 인증의 장점 보안성 - 더 이상 쿠키를 저장하지 않기 때문에 더 높은 보안성을 보장 무상태 & 확장성 - 세션을 이용할 경우 여러 대의 서버를 사용한다면 어떤 유저가 로그인했을 때 그 유저는 처음 로그인했던 서버에만 요청을 보낼 수 있어 서버를 여러 대 운영하는 장점이 사라진다. 확장성 - 페이스북/구글 같은 소셜 계정들을 이용하여 다른 웹서비스에서도 로그인이 가능하다. OAuth : 페이스북으로 로그인하기처럼 다른 웹 서비스의 계정으로 사용자 인증을 대신하는 기술 👀 JWT .. 2021. 1. 16. 이전 1 2 다음