[Spring] IoC, DIP, DI란?
·
Spring/Spring
1. 의존성(Dependency)이란? 의존성(dependency)이란 한 객체, 함수, 모듈 또는 시스템이 다른 것 없이는 제대로 작동할 수 없는 상황을 의미합니다. 예를 들어, Store 클래스가 Pencil 클래스의 메서드를 사용하고 있다면, Store 클래스는 Pencil 클래스에 의존하고 있습니다. 즉, Pencil 클래스 의 변경이 Store 클래스에 영향을 미치게 됩니다. IOC, DIP, DI는 모두 객체 간 의존성을 관리하는 데 사용되는 개념이지만, 서로 다른 역할과 특징을 가지고 있습니다. 2. IoC (Inversion of Control) : 제어의 역전 제어의 역전은 객체 생성 및 의존성 주입을 객체 자체가 아닌 외부에서 수행하는 방식입니다. 프로그램의 흐름을 개발자가 아닌 프레임..
[Spring Boot] Access Token & Refresh Token
·
Spring/Spring Boot
1. JWT 비밀키 탈취 JWT 토큰은 우리가 서버와 클라이언트 간에 안전하게 정보를 주고받을 수 있게 해주는 열쇠와 같습니다. 이 열쇠는 사용자의 신원이나 권한 같은 중요한 정보를 담고 있습니다. 그래서 이 열쇠를 사용하면, 클라이언트와 서버는 서로를 신뢰하고 통신할 수 있습니다. JWT 토큰 인증방식은 비밀키(개인키 or 대칭키)를 사용하여 암호화합니다. 누군가 이 비밀키를 가지고 있다면 그 사람은 신뢰할 수 있는 사람으로 인정받습니다. 비밀키를 탈취당하게 된다면 문제가 발생하기 때문에 비밀키에 유효 기간을 두어야합니다 그런데 유효기간을 짧게 두면 사용자가 로그인을 자주 해야하므로 사용자 경험적으로 좋지 않고, 유효기간을 길게 두면 보안상 탈취 위험에서 벗어날 수 없습니다. 이런 문제를 해결하기 위해..
[Spring Boot] DTO를 DB에 저장
·
Spring/Spring Boot
https://achieve-dev.tistory.com/41 [Spring boot] 폼데이터를 DTO로 받기 오늘은 스프링 부트에서 웹 폼(form) 데이터를 DTO(Data Transfer Object)로 받는 방법에 대해 알아보겠습니다. ● 폼 데이터(Form Data): 웹 페이지에서 사용자가 입력한 데이터를 서버로 전송하기 위한 형 achieve-dev.tistory.com 이전 시간에 웹 브라우저에서 전송한 폼 데이터를 DTO에 담아 컨트롤러로 받아왔었습니다. 이번에는 DTO를 데이터베이스에 저장하는 방법을 작성하겠습니다. ● JPA 스프링 부트는 자바언어를 사용합니다. 하지만 DB는 SQL이라는 언어를 사용하기 때문에 JPA(Java Persistence API)란 언어를 사용하여 자바 언..
[Spring boot] 폼데이터를 DTO로 받기
·
Spring/Spring Boot
오늘은 스프링 부트에서 웹 폼(form) 데이터를 DTO(Data Transfer Object)로 받는 방법에 대해 알아보겠습니다. ● 폼 데이터(Form Data): 웹 페이지에서 사용자가 입력한 데이터를 서버로 전송하기 위한 형식을 의미합니다. ● DTO(Data Transfer Object)는 서버와 클라이언트 간에 데이터를 효율적으로 전송하기 위해 사용하는 객체를 말합니다. 1. 뷰페이지 생성 {{>layouts/header}} 제목 내용 제출 Back {{>layouts/footer}} 뷰페이지를 생성하고 태그의 action 속성으로 데이터를 어디에 보낼지 정의하고 method 속성으로 데이터를 어떻게 보낼지 정의합니다. 2. 컨트롤러 생성 @Controller public class Artic..
[Spring] 의존성 주입(Dependency Injection, DI) 이해하기
·
Spring/Spring
1. 의존성이란? DI에서 의존성이란 한 객체가 다른 객체의 기능에 의존하는 관계를 의미합니다. 예를 들어, 자동차(Car) 객체가 엔진(Engine) 객체의 기능을 사용한다면, 자동차 객체는 엔진 객체에 의존하고 있다고 할 수 있습니다. 2. 의존성 주입(Dependency Injection, DI)이란? 의존성 주입은 한 객체가 다른 객체에 의존할 때, 이 의존성을 외부에서 주입하는 기법ㄱ을 말합니다. 이 기법을 사용하면 객체는 필요한 의존성을 직접 관리하지 않고, 외부에서 주입받아 사용할 수 있습니다. 이로 인해 객체는 의존성에 대해 더 이상 알 필요가 없습니다. 3. DI의 장점 DI의 가장 큰 장점은 코드의 결합도를 낮추고, 유연성을 높인다는 것입니다. 객체가 직접 의존성을 생성하거나 찾지 않기..
[Spring] 한글 인코딩 에러 해결(한글 ➡️ ??)
·
Spring/Spring
1. 문제 정의 Spring Boot로 개발한 웹 애플리케이션에서 한글이 '?'로 표시되는 문제를 겪을 수 있습니다. 이는 대부분 인코딩 설정 문제 때문입니다.인코딩: 데이터를 특정한 규칙에 따라 다른 형태나 형식으로 변환하는 과정을 의미합니다. 특히 웹 애플리케이션에서의 인코딩은 주로 문자 데이터를 어떤 문자 체계(예: UTF-8, EUC-KR 등)를 사용하여 바이트 코드로 변환할 것인지를 결정하는 방식을 말합니다.2. 해결 방법이 문제를 해결하는 가장 간단한 방법은 application.properties 또는 application.yml파일에server.servlet.encoding.force-response=true 설정을 추가하는 것입니다.2.1) application.properties 파일인..
[Spring] 스프링과 스프링부트
·
Spring/Spring
스프링과 스프링부트는 모두 자바 기반의 애플리케이션 개발 프레임워크입니다. 스프링은 2003년에 출시된 오픈소스 프레임워크로, 현재 가장 많이 사용되는 자바 애플리케이션 프레임워크 중 하나입니다. 스프링부트는 2014년에 출시된 스프링의 확장 프레임워크로, 스프링을 보다 쉽고 빠르게 사용할 수 있도록 도와줍니다. 이 글에서는 스프링과 스프링부트의 차이점에 대해 자세히 알아보겠습니다. 1. 기본 개념 스프링 자바 기반의 애플리케이션 개발 프레임워크 웹 애플리케이션 개발, 데이터 액세스, 보안, 배치 및 일괄 처리 등의 기능을 제공 XML, Java Configuration 등 다양한 방식으로 설정 가능 다양한 기능과 모듈을 제공하기 때문에 설정과 학습이 복잡할 수 있음 스프링부트 스프링의 확장 프레임워크 ..
[Spring 입문] 2. 스프링 웹 개발 기초
·
Spring/Spring 입문
웹개발 방법 정적 컨텐츠 : 서버는 파일을 웹 브라우저에 그대로 전달합니다. 이는 HTML, CSS, JavaScript 파일 등을 포함할 수 있습니다. MVC와 템플릿 엔진 : 서버는 데이터를 기반으로 HTML을 동적으로 생성하여 웹 브라우저에 전달합니다. 이는 사용자의 요청에 따라 내용이 변경될 수 있습니다. API : 서버는 웹 브라우저에 데이터를 전달하고, 웹 브라우저는 이 데이터를 사용하여 사용자 인터페이스를 동적으로 생성합니다. 이 데이터는 주로 JSON 또는 XML 형식으로 전달됩니다. API는 웹 브라우저뿐만 아니라 다른 서버나 애플리케이션과도 데이터를 교환할 수 있습니다. 정적 컨텐츠 정적 컨텐츠 https://docs.spring.io/spring-boot/docs/2.3.1.RELEA..
[Spring 입문] 1. 프로젝트 환경설정
·
Spring/Spring 입문
0. 강의 소개 [전체 목차] 0. 강의 소개 1. 프로젝트 환경설정 2. 스프링 웹 개발 기초 3. 회원 관리 예제 - 백엔드 개발 4. 스프링 빈과 의존관계 5. 회원 관리 예제 - 웹 MVC 개발 6. 스프링 DB 접근 기술 7. AOP 강의 목표 스프링 학습에 제대로 된 첫 길잡이 역할 실무에서 자용하는 기술 위주 간단한 웹 애플리케이션 개발 간단한 웹 애플리케이션 개발 스프링 프로젝트 생성 스프링 부트로 웹서버 실행 회원 도메인 개발 웹 MVP 개발 DB 연동 - JDBC, JPA, 스프링 데이터 JPA 테스트 케이스 작성 1. 프로젝트 환경설정 프로젝트 생성 요즘 스프링 프로젝트는 스프링 부트 스타터에서 스프링 프로젝트 생성한다.(https://start.spring.io/) Project (..
JoonYong
'spring' 태그의 글 목록