전체 글
-
SSAFY 11기 5주차 회고SSAFY 2024. 1. 30. 23:29
싸피 11기 자바(전공)반에 합격하여 교육을 받은 지 5주차가 되었다. 5주차부터는 알고리즘 교육이 시작되었고, 기초부터 차근차근 정리할 수 있는 좋은 기회인 거 같다. 그동안 정신없이 흘러갔기도 했고, 앞으로는 일상을 기록하며 공부한 내용들을 제대로 정리하고자 하는 마음에 블로그를 다시 시작하게 되었다. 싸피에 입과한 계기는 다음과 같다. 1. 취업을 하기에 실력이 부족하다고 느낌. 2. 협업 프로젝트가 없음 3. 코테를 패스할만한 알고리즘 실력이 없음 그래서 찾게된 방안이 싸피였고 운 좋게 11기에 입과할 수 있었다. 띄엄띄엄 글을 올리던 블로그에도 새마음으로 다시 주기적으로 공부한 내용들을 정리하고 깃허브에도 많은 코드를 커밋할 계획이다. 1-2 주차 스타트캠프 기간으로 제대로 된 교육을 받는 기간..
-
JDBC API, JDBC TemplateSpring 2024. 1. 10. 21:43
JDBC는 Java Database Connectivity의 약자로, Java 언어를 통해 데이터베이스에 접속하고 쿼리를 실행하기 위한 API입니다. 기본적으로 JDBC를 사용할 때는 아래와 같은 과정을 거칩니다. DataSource에서 커넥션을 가져옵니다: 데이터베이스와의 연결을 수립하기 위해 DataSource로부터 커넥션을 가져옵니다. 커넥션 사용 후 반납: 쿼리 실행이 끝난 후에는 해당 커넥션을 close() 메서드를 사용하여 반납하여 자원을 반환합니다. 트랜잭션 관리: 데이터베이스 작업을 트랜잭션으로 묶어주기 위해 try-catch 또는 try-finally 블록으로 감싸서 커넥션 관련 코드를 작성합니다. JDBC의 출현 배경 더보기 예전에는 데이터베이스마다 커넥션을 가져오고 SQL을 전달하고,..
-
@ModelAttribute를 사용하여 직렬화Spring 2023. 11. 29. 17:19
본 포스팅은 개인프로젝트 진행시 겪었던 어려움과 해결 방법에 대해 이야기하는 글입니다. 졸업 과제 프로젝트로 다이어리 서비스를 개발하는 중 문제가 발생하였다. 우선 Event 엔티티 클래스 필드값이다. @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinColumn(name = "USER_ID") private User user; @Enumerated(EnumType.STRING) private Status status; private String eventName; private LocalDate activationDate; private LocalDate deactivationDate; 사용자로..
-
SWEA 1954. 달팽이 숫자PS 2023. 11. 18. 01:22
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 2차원 배열을 생성한 뒤 출력형식에 맞게 값을 갱신해주었다. 문제에선 우, 하, 좌, 상 순으로 방향을 바꿔가며 값을 갱신해주고 있는 것을 볼 수 있다. 격자탐색 문제처럼 dx, dy를 생성해주고 배열을 넘어가거나, 값이 갱신된 적이 있다면 방향을 갱신해주는 식으로 풀이하였다. import java.io.BufferedReader; import java.io.InputStreamReade..
-
SWEA 1249. [S/W 문제해결 응용] 4일차 - 보급로PS 2023. 11. 18. 01:19
https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 높이 정보를 입력받은 뒤 최소값으로 목표지점까지 도달할 수 있게 하였다. 1. 높이정보를 기준으로 한 우선순위 큐를 생성한 뒤, bfs를 돌려 탐색을 한다. 2. 목표지점에 도착한다면 도착한 노드의 최소시간과 정답을 비교하여 값을 갱신하여 준다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.P..
-
SWEA 1206. [S/W 문제해결 기본] 1일차 - ViewPS 2023. 11. 16. 23:45
https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 건물 갯수만큼 배열을 선언해 건물의 높이 정보를 입력받는다. 구하고자 하는 건물을 기준으로 -1, -2 의 건물 길이 중 큰 값을 left 변수에 저장, +1, +2 중 큰 값을 right 변수에 저장한 뒤 둘 중 큰 값을 max 변수에 저장한다. 현재 건물의 높이와 max의 높이를 비교하여 현재 건물의 높이가 더 높다면 result 변수에 현재 건물높이 - max 의 값을 저장함으로써 문제의 정답을 구할 수 있었다. import java...
-
HttpMessageConverterSpring 2023. 10. 5. 23:23
HttpMessageConverter란 ? 스프링 프레임워크에서 제공하는 인터페이스이며, SpringMVC의 일부이다. HTTP 요청 본문을 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경한다. hello라는 GET 요청이 들어오면 "hello"라는 문자열을 반환하는 컨트롤러가 있다. @RestController public class HelloController { @GetMapping("/hello") public String hello(){ return "hello"; } } 위의 RestController는 데이터를 반환하는 컨트롤러이다. 사실 이 컨트롤러에서는 반환 타입의 String 앞에 @ResponseBody 어노테이션이 생략되어 있는 것이다. RestController는 뷰를 반환..
-
Java 1253 좋다PS 2023. 9. 11. 22:24
https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 투포인터로 해결할 수 있는 문제였다. 원소의 배열을 정렬한 뒤 0을 left, n-1을 right로 잡은 뒤 둘의 합이 해당 원소보다 크다면 right - 1, 작다면 left +1을 하여 값을 찾아주는데 여기서 주의할 점은 문제에서 언급되어있듯이 어떤 수가 다른 수 두개의 합이로 나타내어야 하는 조건이 있기에 left, right가 비교하고자 하는 원소와 값이 같은지 다른지 체크를 해주어야한다. import java.io...