JAVA46 [Spring] Spring Security 🔍 Spring Security를 사용하는 이유API를 관리할 때는 인증 및 인가를 구현하기 위해 유저에 관련된 클래스들을 작성하게 된다.그 클래스들은 리포지터리, 모델, 서비스, DTO, 요청, 컨트롤러 등으로 기능을 위해 작성했던 클래스들과 비슷한 과정을 거친다.하지만 API가 사용자를 인증하지 않기 때문에 불완전하다고 할 수 있다.우리가 사이트에서 로그인을 했는지 안 했는지 판단하는 코드를 추가한다고 한다면, 모든 API에 "요청 바디에 token이 있는지"를 확인해야 한다. 이 방식을 사용할 경우 100개가 넘는 API를 관리한다고 하면 같은 코드를 100번 반복해야 한다.하지만 Spring Security를 이용한다면 코드를 한 번만 짜더라도 이 코드가 모든 API를 수행하기 바로 전에 실행되.. JAVA/Theory 2024. 5. 13. [Java] Deque와 LinkedList 🔍 DequeDeque는 Double Ended Queue의 양방향 대기열이라고도 불리는 자료구조이다.양방향으로 열려있는 구조로 Queue와 외형적으로 비슷하지만 Deque는 Stack과 Queue와 달리 LIFO, FIFO와 같은 순서에 구속되지 않는다. Deque의 특징 Stack 및 Queue를 모두 사용할 수 있다.Deque는 양쪽으로 데이터를 추가하고 삭제할 수 있어서 Stack과 Queue를 구현할 수 있다.추가와 삭제를 양쪽에서 제어할 수 있어서 여러 형태로 사용할 수 있다. Deque의 선언Deque deque = new LinkedList();Deque deque = new ArrayDeque(); LinkedList와 ArrayDeque 인터페이스를 활용해 구현한 deque🔍 Deq.. JAVA/Theory 2024. 4. 26. [Java] HashMap과 HashSet 🔍 HashMapHashMap은 키-값 쌍으로 데이터를 저장하므로, 다양한 용도로 활용할 수 있다.Value의 중복값은 허용하나 Key값이 중복될 수는 없다. 1. 데이터 저장 및 검색데이터를 저장할 때는 put(key, value) 메서드를 사용한다.특정 키에 해당하는 값을 검색할 때는 get(key) 메서드를 사용한다.HashMap scoreMap = new HashMap();scoreMap.put("Alice", 90);scoreMap.put("Bob", 85);Alice의 점수는 scoreMap.get("Alice")이다. 2. 데이터 삭제특정 키-값 쌍을 삭제할 때는 remove(key) 메서드를 사용한다.모든 데이터를 삭제할 때는 clear() 메서드를 사용한다.scoreMap.remove(.. JAVA/Theory 2024. 4. 25. [Java] Stack과 Queue 그리고 Deque 🔍 StackStack은 후입선출(LIFO: Last In First Out) 구조로 되어 있는 자료구조이다. 데이터를 순서대로 쌓아올리는 형태이며, 단방향 입출력 구조를 가진다. 스택은 시스템 해킹, 그래프의 깊이 우선 탐색(DFS) 등 다양한 분야에서 활용된다.// 스택 선언Stack stack = new Stack();// 데이터 추가stack.push(1);stack.push(2);stack.push(3);// 데이터 꺼내기int top = stack.pop(); // 3top = stack.pop(); // 2top = stack.pop(); // 1// 스택 비어있는지 확인boolean isEmpty = stack.empty(); // true🔍 QueueQueue는 먼저 들어온 데이터가 .. JAVA/Theory 2024. 4. 25. [Spring] JPA를 활용한 회원 정보 관리 시스템 구현하기 🔍 JPA(Java Persistence API) JPA(Java Persistence API)는 자바 애플리케이션에서 객체와 관계형 데이터베이스 간의 매핑을 단순화하는 표준 API이다. 이번 포스트에서는 JPA를 활용하여 회원 정보 관리 시스템을 구현한다.🔍회원 정보 엔티티 클래스 설계회원 정보를 관리하기 위한 엔티티 클래스인 UserEntity가 필요하다. 이 클래스는 MEMBER 테이블과 매핑된다. UserEntity 클래스의 주요 속성은 다음과 같다.id: 회원 식별자(자동 생성)username: 회원 이름email: 회원 이메일 (기본 키)pw: 회원 비밀번호nickname: 회원 닉네임ph: 회원 전화번호birth: 회원 생일gender: 회원 성별🔍 회원 정보 엔티티 클래스 구현주어진 .. JAVA/Practice 2024. 4. 2. [Exception] org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection DB를 생성하지 않아서 생기는 문제입니다. chalkag이라는 db를 추가해서 해결 JAVA/Exception 2024. 3. 15. [Spring] Command 객체를 이용한 Controller 🔍 Command 객체 Command 객체는 사용자의 입력값이나 요청을 담는 객체이다. HTTP 요청에 많은 데이터가 포함될 경우, 모든 데이터를 개별적인 매개변수로 전달하는 것은 번거로울 수 있다. 이런 경우 Command 객체를 사용하여 관련 데이터를 하나의 객체로 묶어 전달할 수 있다. 이전에는 컨트롤러에서 DTO를 new를 해주고 reponse와 request 객체에 담아서 사용하였지만 이 커맨드 객체를 활용하면 DTO에 값을 직접 넣지 않아도 View에서 전송한 데이터가 자동으로 들어가게 된다. @Controller public class SignIn { @Autowired MemberService memberService; @RequestMapping(value = "/signIn", meth.. JAVA/Practice 2024. 3. 14. [MAVEN] SpringMVC2 버전2 연습 (Controller) 🔍 목표 중간 프로젝트 때 진행했던 카메라 커뮤니티 사이트를 Spring으로 이관하는 것 실무에서 어떤 버전을 사용할지 알 수 없기 때문에 여러 버전을 연습 앞에서 썼던 SpringMVC2에 대한 설명이 생각보다 이해하기 힘든 것 같아 Refresh!! 🔍 DispatcherServlet 버전 1에서는 개발자가 직접 작성한 DispatcherServlet을 사용했다. 하지만 버전 2에서는 Spring에서 제공하는 DispatcherServlet을 사용한다. 의존 주입을 하기 위해서는 .xml 즉, 설정파일이 필요하다. 💡 org.springframework.web.servlet.DispatcherServlet web.xml dispatcher org.springframework.web.servlet.Di.. JAVA/Practice 2024. 3. 7. [MAVEN] SpringMVC2 버전1 연습 (Controller) 🔍 목적 중간 프로젝트 때 진행했던 카메라 커뮤니티 사이트를 Spring으로 이관하는 것 실무에서 어떤 버전을 사용할지 알 수 없기 때문에 여러 버전을 연습 앞에서 썼던 SpringMVC2에 대한 설명이 생각보다 이해하기 힘든 것 같아 Refresh!! 🔍 DispatcherServlet (FrontController) DispatcherServlet은 MVC2 패턴에서 유일하게 사용하는 서블릿이다. 그냥 이게 없으면 뭘 할 수가 없음 Spring에서는 FrontController 대신 DispatcherServlet을 사용한다. 버전 1에서는 개발자가 만든 DispatcherServlet을 사용한다. 💡 import com.spring.controller.common.DispatcherServlet D.. JAVA/Practice 2024. 3. 6. [MAVEN] SpringMVC 버전 2 🔍 DispatcherServlet Spring 프레임워크에서 제공하는 DispatcherServlet을 사용하며, DI를 위한 설정 파일인 dispatcherServlet-servlet.xml이 필요하다. 🔍 Controller Spring 프레임워크에서 제공하는 Controller를 상속하여 사용하며, 기존에는 request 객체를 통해 데이터를 전달했지만 이는 무겁다. package com.spring.controller.board; import java.util.ArrayList; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import com.spr.. JAVA/Theory 2024. 3. 5. [MAVEN] SpringMVC 버전 1 🔍 DispatcherServlet 개발자가 직접 만든 DispatcherServlet을 사용. 이는 프론트 컨트롤러 역할을 수행하며 멤버변수 초기화, 생성자, Setter, 어노테이션, 의존 주입, init() 메서드 등을 포함한다. package com.spring.controller.common; import java.io.IOException; import org.springframework.stereotype.Controller; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servl.. JAVA/Theory 2024. 3. 5. [Spring] 의존 주입을 위한 어노테이션 스프링의 의존성 주입(Dependency Injection)을 통해 객체들을 관리하고, 코드의 가독성을 높이며, 런타임 시에 필요한 설정을 자동으로 수행할 수 있도록 도와주는 어노테이션들이 있다. 단순히 어노테이션을 붙이는 것만으로는 해당 클래스가 원하는 동작을 하지 않으며, 스프링 설정 파일에 어노테이션을 인식하도록 지시해야 한다. @Component 이 어노테이션은 스프링 컨테이너에 의해 관리되는 클래스를 표시한다. 주로 일반적인 구성 요소로 사용되며, 특별한 의미를 나타내는 다른 어노테이션을 사용하지 않을 경우에는 이 어노테이션을 사용한다. @Service 비즈니스 로직을 수행하는 서비스 클래스에 주로 사용된다. 주로 트랜잭션 관리, 예외 처리 등과 같은 비즈니스 로직을 처리한다. @Reposito.. JAVA/Theory 2024. 3. 4. 이전 1 2 3 4 다음