WEB 6

스프링 객체지향과 다형성

초반에 리포지토리를 구현할 때는 db 연결 없이 해쉬 맵으로 구현했었다. 멤버 리포지토리 인터페이스를 해쉬맵으로 구현한 멤버 메모리멤버리포지토리 구현체로만 연결 했었다. 하지만 이후 h2 데이터 베이스와 연결하기 위해 jdbc 맴버 리포지토리에 새롭게 구현했다.그래서 멤버 리포지토리의 인터페이스가 두개의 구현체와 연결이 된 상황이 됐다.  이때, 기존에 멤버 리포지토리와 의존관계가 있는 서비스를 어떻게 처리해야할까? 스프링 DI를 이전에 컴포넌트 스캔을 통한 자동 의존 관계 설정(@Autowired) 방식이 아닌, 자바 코드로 직접 스프링 빈(@Bean)에 등록하면 간단하게 해결할 수 있었다. @Configurationpublic class SpringConfig { private final Dat..

WEB 2024.11.25

서블릿(Servlet)

서블릿동적 웹페이지를 만들 때 사용되는 자바 기반의 웹 어플리케이션 프로그래밍 기술웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해줌서버에서 실행되다가 웹 브라우저에서 요청을 하게 되면 해당 기능을 수행한 후 브라우저에 결과 전송ex) 로그인 시도를 할 때, 서버가 클라이언트에서 입력되는 아이디/비번 확인하고 결과를 응답하는데 이러한 역할을 수행하는 것특징클라이언트의 Request에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트기존의 정적 웹 프로그램의 문제점을 보완하여 동적인 여러가지 기능 제공JAVA의 스레드를 이용하여 동작MVC 패턴(model–view–controller)에서 컨트롤러로 이용됨컨테이너에서 실행보안 기능을 적용하기 쉬움  동작과정클라이언트가 웹서버에 요..

WEB 2024.11.15

[Tomcat] Web Server와 WAS, Apache Tomcat

정적 웹페이지서버에 미리 저장된 파일(HTML, Image, JavaScript 등)이 그대로 전달되는 웹페이지서버는 사용자 요청에 해당하는 저장된 웹페이지를 보냄사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹페이지를 보게 됨모든 사용자는 같은 결과의 웹페이지를 서버에 요청하고 응답 받음EX) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들동적 웹페이지서버에 있는 데이터들을 스크립트에 의해 가공 처리한 후 클라이언트에게 전송하는 웹페이지사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게됨같은 페이지라도 사용자마다 다른 결과의 웹페이지를 서버에 요청하고 받을 수 있음대부분의 웹페이지는 동적 웹 페이지ex) 네이버 블로그, 티스토리 등..

WEB 2024.11.10

[pandas] csv 데이터 api 연동, 처리

환경 지수 출력 프로젝트 개발 중에, 환경 지수에 대한 공공데이터를 처리해야했다 [ 공공 데이터의 api를 받아와 연동한 후, 데이터 가공 ]필요 데이터 : 온실가스 데이터, 대기질 데이터, 음식물 쓰레기 데이터  step1. 데이터의 api를 받아와 필요한 데이터를 분리한 후, csv 형태로 저장해준다. (파이선 pandas 이용)import pandas as pdfrom io import StringIOimport requestsimport pprintimport json#음식물 쓰레기url_f = "https://openapi.gg.go.kr/Fodndrkwstoccur?KEY=7f21e9c535d044b8aeb51c90b1c8dff3&Type=json&pIndex=1&pSize=100"respon..

WEB 2024.11.03

[JWT]쿠키/세션/JWT 비교, jwt 구현 (nodejs)

보통 로그인을 구현할 때, 토큰을 많이 사용하곤 한다. JWT 토큰을 대부분 사용하는데 이 토큰에 대해 알아보도록 하자. 우선 쿠키와 세션에 대해 알고 있나요? 쿠키client가 웹사이트에 접속 시 그 사이트가 사용하게 되는 일련의 작은 기록 (클라이언트)ID/PW로 로그인 요청 → (서버)쿠키에 정보 저장 → (서버)정보 전달로그인 요청을 할 때 마다 받은 쿠키를 던져서 요청을 함다른 요청을 할 때에도 기존 쿠키로 ID, PW까지 동시에 클라이언트가 날림 단점노출 시 민감 정보까지 다 노출이 되어 보안이 안좋음브라우저마다 쿠키 지원 형태가 달라 브라우저 간의 공유 불가능쿠키 사이즈가 4KB로 제한되어있음서버는 매번 id, pw를 받아서 인증해야하는 불편함이 있음조작된 데이터가 넘어오는 경우를 방지할 수..

WEB 2024.10.29

스프링 의존성 주입에 관하여

스프링의존성 주입에 대해 알아보기 전에,먼저 계층 구조에 대해 다시 확인하고 가보자.보통 스프링에서 개발을 진행할 때, Controller, Service, Repository 이렇게 계층을 나누어 개발한다.Controller가 Service를, Service가 Repository를 관여하는 방식이다. 각각의 계층을 작성시 코드위에 @Controller, @Service, @Repository 어노테이션을 달아주는데, 이때 어노테이션의 역할은 해당 파일을 스프링 빈으로 등록하겠다는 의미이다.@Controller // 아래 코드를 컨트롤러로 스프링 컨테이너에 등록하겠다는 의미public class MemberController { private final MemberService memberServi..

WEB 2024.10.27