컴퓨터/WEB 12

[Spring] DI(Dependency Injection)와 IoC(Inversion of Control)란?

DI(Dependency Injection) DI는 유연하게 확장 가능한 객체를 만들어 두고 객체 간의 의존 관계는 외부에서 설정하는 것이다. 의존관계? - A 클래스에서 B 클래스의 객체를 멤버 변수로 갖고 있거나, B 클래스 객체의 메소드를 호출하는 관계일 때 "A 클래스가 B 클래스에 의존한다" 라고 한다. class B{ String name; public String call(){ return this.name + "입니다."; } } class A{ B b = new B(); // B 클래스의 객체를 멤버 변수로 갖는다. b.name = "농부"; String callB = b.call(); // 객체의 메소드를 호출 } // A 클래스가 B 클래스에 의존한다. 이 때 DI는 의존하는 객체를 ..

컴퓨터/WEB 2022.10.23

[Spring] 웹서버(Web Server)와 서블릿 컨테이너(Servlet Container) 의 역할과 처리 순서

웹서버(Web Server) 란? 웹 페이지를 사용자에게 전송하는 서버이다. 웹서버는 데이터를 전송하기 위해 HTTP 프로토콜을 사용한다. 사용자가 브라우저에 원하는 웹 페이지의 url을 입력하면 웹 페이지가 나타나는 것처럼 웹 서버가 하는 일은 웹페이지를 사용자에게 전송하는 것이다. 서블릿(Servlet) 이란? 자바를 사용해 클라이언트에게 동적인 웹페이지를 서비스하기 위해 사용한다. https://ticssfm.tistory.com/177?category=1007516 [Backend] Servlet, JSP 그리고 MVC 패턴 Servlet / JSP 서블릿/JSP는 자바를 사용해 동적인 웹을 만들기 위해 사용되는 프로그래밍 기술이다. 정적 웹 페이지는 미리 저장된 파일을 요청에 따라 걍 보내는거고..

컴퓨터/WEB 2022.10.23

[Spring] Servlet, JSP 그리고 세션을 이용한 로그인, 로그아웃 구현

저번 글 : https://ticssfm.tistory.com/177?category=1007516 [Backend] Servlet, JSP 그리고 MVC 패턴 Servlet / JSP 서블릿/JSP는 자바를 사용해 동적인 웹을 만들기 위해 사용되는 프로그래밍 기술이다. 정적 웹 페이지는 미리 저장된 파일을 요청에 따라 걍 보내는거고, 동적 웹 페이지는 서버에 있 ticssfm.tistory.com 저번 글에 이어서 이번에는 MVC 패턴을 이용하여 간단하게 로그인, 로그아웃하는 법을 포스팅 하겠다. 일단 User 정보가 들어갈 DB는 mysql을 사용하였다. DB 먼저 생성해주자 create schema study; use study; create table `user`( `id` varchar(50) ..

컴퓨터/WEB 2022.09.25

[Spring] Servlet, JSP 그리고 MVC 패턴

Servlet / JSP 서블릿/JSP는 자바를 사용해 동적인 웹을 만들기 위해 사용되는 프로그래밍 기술이다. 정적 웹 페이지는 미리 저장된 파일을 요청에 따라 걍 보내는거고, 동적 웹 페이지는 서버에 있는 데이터들을 가공해서 보여주는 방법이다. 예를 들면 로그인처럼 아이디와 비밀번호를 입력하고 로그인 버튼을 누르면 성공/실패 결과를 반환하잖아요? 그런게 동적 웹 페이지이고 이 역할을 서블릿이나 JSP로 할 수 있다. Servlet : Java에 html 코드를 작성할 수 있음 JSP : html 안에 .Java 코드를 작성할 수 있음 Servlet은 .java 파일로 만들어지고, 자바코드 안에 html을 이런 느낌으로 넣는다. doGet(){ PrintWriter out = response.getWri..

컴퓨터/WEB 2022.09.18

[Django] 장고 User 모델 OneToOneField로 확장해서 사용하기 + 토큰으로 로그인하기

장고에서는 User모델을 제공해준다. https://docs.djangoproject.com/en/4.0/ref/contrib/auth/ django.contrib.auth | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 자세한 필드 내용은 저 공식문서를 보면 된다. 보통 많이 쓰는게 username, password, email 정도? 그런데 나는 회원가입을 시도할 때 다른 내용도 넣어줘야 했기 때문에 저 User 모..

컴퓨터/WEB 2022.05.14

[Web] 로그인 메커니즘, 그리고 세션과 쿠키

서버가 서비스를 요청하는 client가 누구인지를 지속적으로 구분하는 것이 로그인이다. 서버 입장에서는 모든 client의 요청이 다 새로운 요청임. 서버는 응답하고나면 기억을 못하니까.... client는 많은데 서버는 하나잖음 로그인이라는건 지금 막 들어온 요청이 새로운 요청이 아니라 3초전에 요청했던 그넘이다! 라는걸 기억하는 행위임. 요청하고 응답하면 서버와 클라이언트의 연결은 끊어짐 (stateless) 그럼 어떻게 기억하지? 클라이언트와 WAS서버 (프로그램이 돌아가는 컨테이너)가 있음. 클라어인트가 서버에 요청을 보내면 그걸 구분하기 위한 세션이 자동적으로 만들어짐 세션은 숫자와 문자가 종합된 키임 (session id라고 함) session id : 서버에 접속하면 client를 구분하기 ..

컴퓨터/WEB 2022.05.10

[Django] PythonAnywhere로 Django 프로젝트 배포하기

Django 배포 (Deployment) 디버그 모드 (Debug Mode) 디버그 모드는 에러가 발생했을 때 자세한 에러 페이지를 표시한 것이다. 기본적으로 Django 프로젝트를 생성하면 settings.py에 디버그 모드가 켜져 있는 상태로 만들어진다. # settings.py ... # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ... 디버그 모드가 켜져 있으면 웹 브라우저에 우리 프로젝트에 대한 자세한 로그를 보여 주는데 개발 중에는 에러가 발생했을 때 쉽게 수정할 수 있게 도와주는 기능이지만 배포 시에는 이와 같은 자세한 로그가 프로젝트의 소스 코드와 여러 설정 값을 노출해서 보안 이슈로 이어지기 때..

컴퓨터/WEB 2022.05.01

[Django] Django의 Migration

Django의 Migration 마이그레이션(Migration)은 모델(Model)의 변경 사항 즉 Django 프로젝트의 데이터 구조 변경 사항을 관리하기 위한 Django만의 관리 방법이다. 변경될 때마다 히스토리를 하나씩 만들어 두고 마치 블럭을 갈아 끼우듯 생성한 히스토리를 실제 데이터베이스에 반영하는 것임. 그리고 이 모든 과정은 Django의 ORM(Object-Relational Mapping)을 통해 진행된다. 여기에는 4가지 명령어가 있다. makemigrations migrate showmigrations sqlmigrate makemigrations python manage.py makemigrations 모델의 변경 사항을 인식해 새로운 마이그레이션을 만드는 명령어이다. 이때 마이그..

컴퓨터/WEB 2022.04.30

[Django] Template Language

템플릿 변수 (Template Variable) {{ variable }} 템플릿 변수는 템플릿이 렌더될 때 해당 변수가 의미하는 값으로 변환된다. 뷰(View)에서 가공한 데이터를 템플릿으로 넘겨주면 템플릿에서는 템플릿 변수를 사용해 넘겨받은 데이터에 접근할 수 있다. 템플릿 변수의 점(.) 연산자 템플릿 변수는 점(.)을 사용해서 변수 안쪽 속성에 접근할 수 있다. user = {"name" : "농부", "coffee" : True} 예를 들어 위와 같은 user 변수가 있다면, user.name으로 "농부"라는 안쪽 값에 접근 할 수 있다는 것이다. 이와 같은 점(.) 연산자는 다음과 같은 순서로 변수의 안쪽 속성에 접근을 시도한다. 변수를 사전형(dict)으로 생각하고 점(.) 연산자로 Key값..

컴퓨터/WEB 2022.04.28

[Django] django의 MVT 구조

Model, View, Template을 합쳐서 MVT 구조라고 한다. Model - 데이터 구조 생성 - 데이터베이스와 소통 하는 역할을 한다. 예를 들어 살펴보자! 대학교 수강신청 사이트를 만든다고 하자. 그럼 우리는 강의 정보와 수강생 정보가 있어야 한다. 데이터베이스를 이런식으로 생성해야겠지 이런 정보를 우리가 model에 정의하면 우리는 정의한 데이터베이스와 소통하며 데이터를 CRUD 하게 된다. Template - HTML, CSS, JS를 이용해 웹 사이트의 화면 구성 담당 - template language를 이용해 매번 바뀌는 동적인 화면 구성할 수 있음 예를 들어보자 유튜브를 생각해보면 우리가 어떤 영상을 봐도 기본적인 틀은 비슷하다. 같은 틀 안에서 영상, 제목, 설명글 같은 부분들이..

컴퓨터/WEB 2022.04.28