전체 글

Back-end Developer who want to develop a customer-satisfying service
Java JDK 11 기준 Java Java 경로 : C:\Program Files\Zulu\zulu-11 환경변수 설정 JAVA_HOME C:\Program Files\Zulu\zulu-11 Path 추가 Maven 경로 : C:\maven\apache-maven-3.9.6 환경변수 설정 MAVEN_HOME C:\maven\apache-maven-3.9.6\bin Path 추가
(옵시디언 기록일 : 23년 12월 30일) 문제 https://www.acmicpc.net/problem/17404 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 풀이 1번집과 N번집의 색깔이 같이 않게 하려면 - 1번집 R 일 경우 1번집 G, B를 DP값을 무한대로 - 1번집 G 일 경우 1번집 R, B를 DP값을 무한대로 - 1번집 B 일 경우 1번집 R, G를 DP값을 무한대로 설정하고 반복문을 3번 돌린다. 여기서 첫번째 집에서 선택한 색깔 이외에 다른 색깔을 첫집에서 ..
문제 https://www.acmicpc.net/problem/1103 1103번: 게임 줄에 보드의 세로 크기 N과 가로 크기 M이 주어진다. 이 값은 모두 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 보드의 상태가 주어진다. 쓰여 있는 숫자는 1부터 9까지의 자연수 또는 www.acmicpc.net 풀이 사이클을 체크하기 위한 visited 배열, 이동 카운트 횟수를 저장하기 위한 dp배열 을 이용하여 탐색할 때 이동 카운트 횟수가 저장된 배열과 비교하여 이동할 곳의 카운트 위치가 현재 탐색하고 있는 경로의 카운트보다 많다면 해당 지점을 탐색할 필요가 없음. 이를 이용하여 시간초과를 회피 할 수 있음 세부설명은 주석 참고 import java.util.*; import java.io.*..
문제 https://www.acmicpc.net/problem/2457 2457번: 공주님의 정원 첫째 줄에는 꽃들의 총 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 각 꽃이 피는 날짜와 지는 날짜가 주어진다. 하나의 날짜는 월과 일을 나타내는 두 숫자로 표현된다. 예를 들어서, www.acmicpc.net 풀이 주석참고 import java.io.*; import java.util.*; public class BOJ_2457_G3_공주님의정원 { static int n; static final int LAST_DAY = 1201; static List list; public static void main(String[] args) throws Exception { // st..
(obsidian 기록일 : 24년 1월 1일) 문제 https://www.acmicpc.net/problem/2616 2616번: 소형기관차 첫째 줄에 기관차가 끌고 가던 객차의 수가 입력된다. 그 수는 50,000 이하이다. 둘째 줄에는 기관차가 끌고 가던 객차에 타고 있는 손님의 수가 1번 객차부터 차례로 입력된다. 한 객차에 타고 있 www.acmicpc.net 풀이 변수선언 int[i] trainGuest : 기차탄 손님 int[i] guestSum : 기차탄 손님 누적합 int[i][j] dp : 소형기관차 i개로 j칸을 끌고갈 때 최대로 운송할 수 있는 손님의 수 M : 한개의 소형 기관차가 끌 수 있는 최대 객차의 수 예시 입력값 N = 7, M = 2 손님수 35 40 50 10 30 4..
(Obsidian 기록일 : 24년 01월 11일, 공식문서를 번역하다 보니 오역이 첨가될 수 있음 / 초안) AOP AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 교차 관심사(Cross-cutting concerns)를 분리하여 모듈성을 높이는 것을 목표로 하는 프로그래밍 패러다임이다. 코드 자체를 수정하지 않고 기존 코드에 추가로 동작하게 하는 것을 수행한다. 본문에서는 Spring AOP에 관하여 설명 Spring AOP 공식문서 : https://docs.spring.io/spring-framework/reference/core/aop.html Aspect Oriented Programming with Spring :: Spring Fram..
Synonym DB의 객체는 각자 고유한 이름이 할당되어 있다. ALIAS처럼 동의어를 만드는것이 바로 시노님이다. ALIAS는 1회성인 반면 시노님(Synonym)은 영구적이다. 보통 다른 유저의 객체를 참조할 때 많이 사용을 한다. 다른 유저의 객체를 사용할때 유저의 이름과 객체의 실제이름을 사용하는데(계정명.객체명) 그 두개를 감춤으로써 데이터베이스의 보안을 개선하기위해 사용되어진다. 시노님에는 PUBLIC과 PRIVATE타입이 있다. PUBLIC은 모든 사용자가 접근할 수 있고 PRIVATE는 특정사용자에게만 참조가 가능하다. Synonym 선언 CREATE [OR REPLACE] [PUBLIC] SYNONYM '[스키마명].[시노님명]' FOR '스키마명.대상오브젝트형' OR REPLACE : ..
1. 제어 역전 (IoC) 일반적인 자바 개발의 경우 객체를 사용하기 위해 아래 코드처럼 작성하게됨. @RestController public class NoDIController { private MyService service = new MyServiceImpl(); @GetMapping("/no-di/hello") public String getHello() { return service.getHello(); } } 하지만 IoC을 특징으로 하는 스프링은 기존 자바 개발 방식과 다르게 동작함 IoC를 적용한 환경에서는 사용할 객체를 직접생성하지 않음 객체의 생명주기 관리를 외부에 위임 (외부 = 스프링컨테이너, IoC컨테이너) 객체 관리를 컨테이너에 맡김 = 제어권이 넘어감 = 제어 역전 제어 역전..
해당 내용은 INFCON2023의 다시보기를 보고 요약하였습니다. [무료] 인프콘 2023 다시보기 - 인프런 | 강의 성장하는 IT인들의 축제, 인프콘 2023에서 진행된 오프닝 및 발표 세션을 영상으로 다시 보실 수 있습니다., ✅ 확인해주세요 이 콘텐츠는 2023년 8월 15일 화요일 진행된 인프콘 2023 다시보기 녹화 www.inflearn.com 리팩토링 필요성 분리되지 않은 서비스 레이어 동일한 쿼리 중복 사용 분리되지 않은 서비스 레이어가 문제 테스트하기 어려움 확장성 저하 비즈니스 로직 + 데이터 접근 혼재 이를 해결하기 위해 서비스레이어에서 DB접근을 담당하는 영속성 레이어를 분리하기로 함. 동일한 쿼리 중복 사용 동일한 SELECT 를 사용하는 문장은 VIEW를 사용해서 최적화를 수행..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제는 단순한데 자바 문자열에 익숙하지 않아 꽤 헤멘 문제이다. 처음에는 정규식을 이용해서 해당 문자가 영문인지 판단하였는데 나중에 찾아보니 Character.isLetter() 로 간단하게 판별할 수 있는 것을 알게되었다. import java.util.*; import java.io.*; class Solution { public int solution(String str1, Str..
White Asher
sudo apt-get happiness