2025/06 25

부트캠프95일차 (springSecurity)

1) springSecurity 정의1) 정의웹 애플리케이션의 보안을 담당하는 프레임워크애플리케이션에서 인증(Authentication)과 권한(Authorization)을 처리하는 기능 제공이를 통해 로그인, 접근 제어, 보안 정책 쉽게 구현 가능2) 인증과 권한(1) 인증(Authentication)사용자의 신원을 확인하는 과정일반적으로 로그인이 이에 해당함(2) 권한(Authorization)사용자가 특정 리소스에 접근할 수 있는 권한이 있는지 확인예: 일반 사용자는 관리자 페이지에 접근할 수 없음 작업일단 pom.xml의 DB관련설정은 주석처리해보자커스텀로그인Spring Security의 환경설정 코드를 구성할때 주로 사용람다식이 아닌 코드를 찾는다면 적용이 불가능할 가능성 높음authorizeH..

Spring 2025.06.30

spring에서의 mapstruct 라이브러리에 관한 설명

mapper라는 개념부터 먼저 설명하고 시작하겠음 Mapper"는 일반적인 용어로, 객체 간 데이터를 변환하는 역할을 하는 코드나 클래스를 의미합니다.예를 들어, User 객체를 UserDto로 변환하거나 그 반대로 변환하는로직을 작성하는 모든 코드는 "Mapper"라고 부를 수 있습니다.mapper는 직접 수동으로작성할수도있고 라이브러리(mapperStruct)를 이용해 생성 가능함 MapStruct:MapStruct는 Mapper를 자동으로 생성해주는 자바 라이브러리입니다.개발자가 매핑 로직을 수동으로 작성하지 않아도, 인터페이스에@Mapper 어노테이션과 메서드를 정의하면, MapStruct가 컴파일 시 자동으로 매핑 코드를 생성해줍니다같은 어노테이션이지만 가져오는 라이브러리가다름.org.apac..

Spring 2025.06.29

SpringMVC 매개변수 순서의중요성(@Valid , BindingResult, Model)

Spring MVC의 컨트롤러 메서드에서@Valid와 BindingResult는 데이터 검증(@Valid) 결과를 처리하기 위해 쌍으로 동작합니다.그러나 Spring MVC는 매개변수 순서에 민감하며, 특정 규칙을 따라야 올바르게 동작합니다. (기존에 사용하던코드)@PostMapping("update") public String update(@Valid @ModelAttribute("boardDto") BoardDto board ,Model model,BindingResult bresult,HttpServletRequest request) throws Exception { System.out.println("PostUpdate"); if(bresult.hasErrors()) { return "b..

Spring 2025.06.28

공개키암호

공개키 (Public Key): 누구나 접근 가능하며, 데이터를 암호화하거나 서명을 검증하는 데 사용.개인키 (Private Key): 소유자만이 가지고 있으며, 암호화된 데이터를 복호화하거나 디지털 서명을 생성하는 데 사용. 작동 원리:공개키로 암호화된 데이터는 해당 개인키로만 복호화 가능. 개인키로 생성한 서명은 공개키로 검증 가능.예시를 들어봅시다public class Main_01 { public static void main(String[] args) { String plain1 = "안녕하세요 김석범입니다"; String cipher1 = CipherRSA.encrypt(plain1); System.out.println("암호문 : " +cipher1..

부트캠프(Java) 2025.06.25

hash

요즘시대에 보안은 필수이다DB에 평문으로 개인정보를 저장하는것은 말이안됨!(단방향 해쉬알고리즘몇개를 알아보자) package ex01_hash;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.security.Security;import java.util.Arrays;import java.util.List;import java.util.Scanner;import java.util.Set;public class Main_01 { public static void main(String[] args) throws NoSuchAlgorithmException { byte[] plain = nul..

Java공부(코딩) 2025.06.24

부트캠프91일차 (new Project JPA,Thymeleaf사용,transaction,Log4j2)

1) 새로운프로젝트 Shop3생성 이름은 shop3로 하는 스프링부트에서 다음과같은 라이브러리들을 추가해준다JPA와 Thymeleaf도입 shop3/logic/itempackage kr.gdu.logic;import org.springframework.web.multipart.MultipartFile;import jakarta.persistence.Entity;import jakarta.persistence.Id;import jakarta.persistence.Table;import jakarta.persistence.Transient;import jakarta.validation.constraints.Max;import jakarta.validation.constraints.Min;import jaka..

Spring 2025.06.23

부트캠프91일차 (네이버검색api , Scheduling스케줄링)

1) 네이버검색API /WEB-INF/views/naver/search.jsp 블로그뉴스 책백과사전 카페글 지식인지역 웹문서이미지 쇼핑전문자료 페이지 별 검색 갯수 : 102050    검색어 : 검색 1-1)클라이언트 코딩 application.properties (gitIgnore처리해놔서 git에 안올라감)내가올리는 gitRepository가 private가 아니므로 이런비밀암호같은경우는 application에 담아두는것임자바에서 @Value(${필드명})으로 사용이가능함!!!naver.secret =나의 s..

Spring 2025.06.23

Exception과 AOP의 동작원리

exception/shopException.javapackage kr.gdu.exception;import lombok.Getter;@Getterpublic class ShopException extends RuntimeException{ private String url; public ShopException(String msg,String url) { super(msg); this.url = url; }}난 다음과같이 runtimeException(컴파일러가 강제하지 않는 실행 시간 예외)를 상속받아 클래스를 하나 만듬 aop란?AOP는 공통 관심사를 분리해 코드의 가독성과 유지보수성을 높이는 기술로,Spring AOP나 AspectJ를 통해 쉽게 구현할 수 있습니다. 장점:코드 중복 감소...

Spring 2025.06.21

부트캠프90일차( api)

1)네이버로그인 API2)결제시스템API(포트원)3) 챗봇활용 ( 유료라서 강사님 아이디활용) 1) 네이버 로그인 APIhttps://developers.naver.com/main/ NAVER Developers네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음developers.naver.com해당사이트에 접속해 어플리케이션이름(식별용) 과 프로필사진을 제외하고 모두 필수버튼에 체크를 해준다 요청URL등을 자신의 서버에맞게 설정을 해주면어플리케이션이 만들어짐 getMapping("login") @GetMapping("login") public S..

카테고리 없음 2025.06.20
반응형