[Spring] Argument Resolver 란?
·
Spring Framework
Spring MVC로 Web개발을 할 때 쿼리 파라미터 혹은 HTTP Body에 들어오는 값을 Controller 메소드의 매개변수로만 선언을 해도 자동으로 바인딩을 해준다. 이럴 때 왜, 어떻게 바인딩을 해주지? 라는 의문이 들 것이다. 이런 바인딩을 개발자가 아닌 자동으로 해주는 것이 바로 Argument Resolver이다.   1. Argument Resolver (HandlerMethodArgumentResolver)Argument Resolver는 컨트롤러 메서드의 매개변수에 값을 자동으로 주입하는 역할을 한다. 이는 HTTP 요청의 다양한 데이터를 컨트롤러 메서드의 인자로 전달하기 위해 사용된다. 예를 들어, 요청 파라미터, 헤더, 세션 정보 등을 컨트롤러의 인자에 맞게 변환하여 제공하는 작..
[Java] 백준 1262 (알파벳 다이아몬드) 자바 문제 풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/1262  알고리즘 분류구현 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine());..
[Java] 백준 1015 (수열 정렬) 자바 문제 풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/1015  알고리즘 분류정렬 똑같은 두개의 배열을 두고 하나는 비내림차순(오름차순) 으로 정렬할 때순서에 맞게 index 번호를 출력하는 문제이다.  우선, StringTokenizer를 사용하여 입력된 수들을 배열에 하나씩 저장하였다. StringTokenizer st = new StringTokenizer(br.readLine()); for (int i = 0; i     그 다음, 배열을 복사한 뒤 원본 배열은 Arrays.sort() 함수를 사용하여 오름차순으로 정렬해주었다 int [] arr = temp.clone(); Arrays.sort(temp);   이제 두 개의 배열을 비교하며 원래 배열의 각 요소가 정렬된 배열에서 어떤 ..
서블릿과 멀티쓰레드 이해 및 HTTP API, CSR/SSR 개념 정리
·
Web
[서블릿]A. 서블릿이란?서블릿(Servlet)은 자바 기반의 웹 애플리케이션을 개발하기 위한 기술로, 웹 서버에서 실행되며 클라이언트의 요청을 처리하고 동적인 웹 콘텐츠를 생성한다.HTTP 프로토콜을 지원하며, 클라이언트의 요청에 따라 다양한 응답을 생성할 수 있다.웹 애플리케이션를 직접 구현을 해야한다면?위 사진에 나와있는 목로과 같이 서버 TCP/IP 연결대기 및 소켓을 연결, HTTP 메시지를 모두 파싱해서 읽기 등등 모든것을 구현을 해야한다.서블릿을 사용함으로써 개발자는 비즈니스 로직만 개발하면 된다.   서블릿 특징:플랫폼 독립성: 자바로 작성되어 어떤 운영체제에서도 실행 가능하다.성능 향상: 초기화 후 싱글톤으로 관리되어 반복적인 객체 생성 비용을 절약한다.확장성: 다양한 기능을 추가하여 웹..
[Java] 원시 타입과 참조 타입 정리: 오토박싱과 언박싱 쉽게 이해하기
·
Java
자바에서는 데이터 타입을 크게 원시 타입(Primitive Type)과 참조 타입(Reference Type)으로 나눌 수 있다.이 두 타입은 메모리 관리와 작동 방식에서 중요한 차이가 있으며, 오토박싱과 언박싱은 이 두 타입 간의 상호작용을 돕는 중요한 개념이다. 이 글에서는 원시 타입과 참조 타입의 차이, 그리고 오토박싱과 언박싱에 대해 자세히 살펴보겠다. 1. 원시 타입 (Primitive Type)원시 타입(Primitive Type)은 자바에서 기본적으로 제공하는 타입으로, 가장 간단한 형태의 데이터를 저장하는 데 사용된다. 이 타입은 메모리에서 값 자체를 직접 저장하며, 성능이 뛰어나다. 자바의 원시 타입은 총 8가지이며, 각각의 타입은 고유한 크기와 범위를 가지고 있다. 자바의 원시 타입 8..
@Transactional을 선언해도 내부 메서드를 실행 시 ROLLBACK이 되지 않는 문제
·
Spring Framework
문제- @Transactional을 애노테이션을 선언해도 this를 통한 내부 메서드를 호출시 롤백이 되지 않았다.아래는 문제의 코드이다. 같은 클래스안에 INSERT할 수 있는 서로 다른 메서드를 생성 뒤이 두개의 INSERT 메서드를 this로 내부의 메서드들을 한번에 호출하는 메서드를 생성하였다.(참고로 insert1 메서드를 실행 시 'INSERT INTO BOOK VALUES ('18', 'TEST1', 'TEST_WRITER1', 100, 1)' 라는 SQL 쿼리가 실행 )insert2() 메서드는 예외를 던지고 allInsert() 메서드는 insert1()와 insert2() 내부 메서드를 한번에 호출하는 메서드다. 그 후 테스트 클래스를 생성뒤 한번에 Insert 하는 메서드 실행 아래의..
[Java] 백준 14501 (퇴사) 자바 문제풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/14501 14501번: 퇴사첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.www.acmicpc.net 알고리즘 분류다이나믹 프로그래밍 풀이    public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int [] day = new int[n]; int [] money = new int[n]; ..
내외부 연계 모듈 구현
·
나의 공부방
1. 연계 모듈 구현 환경 구성 및 개발 (1) 연계 모듈 기능 구현 - 개발하고자 하는 응용 소프트웨어가 연계 모듈 간의 세부 설계서를 확인하여 일관되고 정형화된 연계 기능을 구현할 수 있다.- 연계 모듈 기능 구현은 주로 EAI / ESB 방식과 웹 서비스 방식으로 구분된다. (2) EAI  방식 1. EAI (Enterprise Application Integration) 개념- EAI는 기어벵서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션이다.- EAI를 사용함으로써 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높여줄 수 있으며 각  시스템 간의 확장성을 높여줄 수 있다. 2. EAI 구성요소- EAI Platform 기반 위에 각 ..
[Spring](도서관/열람실 프로젝트) 좌석 예약 서비스 개선기
·
Projects/열람실 & 도서관 프로젝트
좌석 서비스를 예약 도중 버그를 발견을 해서 기록을 남기고자 작성한 글입니다. ​ 예시 상황을 들겠습니다. A라는 사용자와 B라는 사용자가 있습니다. ​ 둘다 좌석 예약 페이지를 보고 있습니다. ​ 만약 A 사용자가 1번 좌석을 예약 했지만 B 사용자는 페이지 새로고침이 안되어 있는 상황이라 1번 좌석이 비어있는 것으로 나오고 있습니다. ​ 이 상황에서 B사용자가 1번 좌석을 예약하면 똑같은 좌석이 동시에 두번 예약이 되는 상황이였습니다. 위 gif 파일을 보시면 알 수 있듯이 좌석테이블에 예약테이블을 JOIN 해서 갖고오기 때문에 하나의 좌석이 두번 표시되고 있었습니다. ​ 그래서 검증 프로세스를 하나 더 추가했습니다 로그인을 했는지 예약을 할 그 자리가 비어 있는지(추가) 로그인한 사람이 이미 다른 ..