본문 바로가기

취준생341

[스프링 부트 핵심 가이드] Chapter 11장. 액추에이터 활용하기 스프링 부트 핵심 가이드 [스프링 부트 핵심 가이드] Chapter 11장. 액추에이터 활용하기 스프링 부트 액추에이터는 HTTP 엔드포인트나 JMX를 활용하여 어플리케이션을 모니터링하고 관리할 수 있는 기능을 제공한다 JMX (Java Management Extensions)는 자바에서 어플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API다 MBeans (Managed Beans)를 생성해야 한다 아래와 같이 spring-boot-starter-actuator 모듈의 종속성을 추가한다 SwaggerConfiguration 클래스를 가져오고 그에 따른 의존성을 추가해야 한다 org.springframework.boot spring-boot-starter-actuator 엔드포인트 Act.. 2023. 10. 8.
꼭 보기! 20231003 [Java] 문제풀이 (다익스트라 + dfs) 꼭 보기! 20231003 [Java] 문제풀이 (다익스트라 + dfs) [프로그래머스] 배달 - 다익스트라 다익스트라 알고리즘을 활용 1부터 시작하여, 모든 마을들에 갈 수 있는 최적의 거리를 계산 그 후, 1부터 시작하여 모든 마을들에 갈 수 있는 거리들을 순회하며, 답을 찾는다 import java.util.*; class Solution { static class Node { int to; int distance; Node(int to, int distance) { this.to = to; this.distance = distance; } } public int solution(int N, int[][] road, int K) { int answer = 0; int[] allDistances = .. 2023. 10. 3.
[스프링 부트 핵심 가이드] Chapter 10장. 유효성 검사와 예외 처리 스프링 부트 핵심 가이드 [스프링 부트 핵심 가이드] Chapter 10장. 유효성 검사와 예외 처리 어플리케이션의 비즈니스 로직이 올바르게 동작하기 위해서 데이터를 사전 검증하는 작업이 필요하고, 이것을 유효성 검사 또는 데이터 검증이라고 한다 유효성 검사는 Validation으로 프로그래밍에서 매주 중요한 부분이고, 자바에서 가장 신경 써야 하는 것 중 하나가 NullPointException 예외이다 일반적인 어플리케이션 유효성 검사의 문제점 일반적으로 사용되는 데이터 검증 로직에서, 계층별로 진행하게 되면 각 클래스별로 분산되어 있어 관리하기 어렵고, 검증 로직에 중복이 많아 유사한 기능의 코드가 존재할 수 있으며, 검증해야 할 값이 많으면, 코드가 길어진다는 문제점이 있다 이를 해결하기 위해 자.. 2023. 10. 1.
20230925 [Java] 문제풀이 20230925 [Java] 문제풀이 [프로그래머스] 주식가격 그냥 2중 for문을 사용하여, prices에 있는 원소들을 서로 비교하면 되는 문제다 크거나 같으면 다음 prices 원소를 순회한다 작으면 바로 break class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; for (int i = 0; i prices[j]) break; } answer[i] = count; } return ans.. 2023. 9. 26.
[스프링 부트 핵심 가이드] Chapter 9장. 연관 관계 매핑 스프링 부트 핵심 가이드 [스프링 부트 핵심 가이드] Chapter 9장. 연관 관계 매핑 RDBMS를 사용할 때에 한 테이블을 가지고 모든 기능을 구현하기 불가능 하다 즉 여러 테이블을 이용하고, 연결하여 기능을 구현한다 One To One : 일대일 (1:1) One To Many : 일대다 (1:N) Many To One : 다대일 (N:1) Many To Many : 다대다 (N:M) 일대일 매핑 일대일 단방향 매핑 @Entity @Table(name="MEMBER") @Getter @Setter @NoArgsConstructor public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long mem.. 2023. 9. 24.
20230918 [Java] 문제풀이 20230918 [Java] 문제풀이 [프로그래머스] 프로세스 우선순위 큐를 사용해서 프로세스의 우선순위를 찾는다 여기서 우선순위 큐는 내림차순으로 만들어야 한다 그리고 큐에 priorities를 프로세스의 인덱스와 프로세스의 우선순위를 배열로 넣어준다 큐를 돌면서 우선순위가 같은 프로세스를 result 리스트에 넣어주고 우선순위 큐에서 해당 우선순위는 빼주고, 큐에서도 빼준다 큐를 돈다는 것은, 우선순위가 같지 않으면 큐의 맨 뒤로 돌아가게 된다 import java.util.*; class Solution { public int solution(int[] priorities, int location) { ArrayList result = new ArrayList(); PriorityQueue pq =.. 2023. 9. 18.
20230917 [Java] 문제풀이 20230917 [Java] 문제풀이 [프로그래머스] 소수 찾기 isNotSuso 배열에 0부터 9999999까지 수소의 여부를 true 또는 false로 설정한다 수소이면 false / 아니면 true 이다 permutation, 순열을 통해서 주어진 숫자에서, 만들 수 있는 모든 숫자들을 만든다 숫자들을 만들 때에 중복이 될 수 있기 때문에, set에 넣어준다 set에서 숫자들을 빼면서 수소인지 아닌지 인덱스를 통해서 개수를 센다 import java.util.*; class Solution { HashSet set = new HashSet(); boolean[] isNotSuso = new boolean[10000000]; int count = 0; public void permutation(Str.. 2023. 9. 18.
[스프링 부트 핵심 가이드] Chapter 8장. Spring Data JPA 활용 스프링 부트 핵심 가이드 [스프링 부트 핵심 가이드] Chapter 8장. Spring Data JPA 활용 JPQL JPA Query Language의 줄임말로 JPA에서 사용할 수 있는 쿼리를 의미한다 JPQL은 엔티티 객체를 대상으로 수행하는 쿼리다 쿼리 메서드 주로 Repository라는 패키지를 만들어서, 그 안에 Repository 인터페이스를 만든다 그리고 인터페이스는 JpaRepository 클래스를 상속 받아서 다양한 CRUD 메서드를 사용할 수 있다 쿼리 메서드는 크게 동작을 결정하는 주제 (Subject)와 서술어 (Predicate)로 구분한다 'find.... By', 'exists... By'와 같은 키워드로 쿼리 주제를 정하며 'By'는 서술어의 시작을 나타내는 구분자 역할을 .. 2023. 9. 16.
[Java] Nginx [Java] Nginx NginX 굉장히 가벼운 웹 서버고, 많은 요청이 들어와도 좋은 성능을 보이고 있다 Apache vs NginX Apache 요청이 아파치 웹서버로 들어올 때마다, 프로세스를 생성을 하여, 프로세스가 하나의 요청을 처리한다 요청이 들어올 때마다 프로세스를 생성하여 오버해드가 발생할 수 있다 비교적 무겁고, 성능이 NginX에 비해 떨어진다 NginX master 또는 worker 프로세스를 configuration에 따라서 미리 생성해 놓는다 Task Queue에다가 요청을 쌓아두고, 한 개의 프로세스가 여러 개의 요청을 처리한다 Task Queue에다가 요청을 쌓아두면서, 비동기 처리도 가능해진다 미리 프로세스를 적게 두면 Task Queue 쌓이는 요청이 많아 응답이 느려진다 .. 2023. 9. 14.