RGB 거리 문제 풀이: 동적 계획법(DP) 활용이 문제는 N개의 집을 주어진 비용으로 칠하는 문제로, 각 집을 세 가지 색 중 하나로 칠할 수 있습니다. 다만, 두 집이 인접해 있을 경우, 두 집의 색이 같지 않도록 해야 하므로, 이를 해결하기 위해 동적 계획법(DP)을 사용합니다.문제 분석각 집을 빨간색, 초록색, 파란색 중 하나로 칠할 수 있으며, 각 색에 대한 비용이 다릅니다.N개의 집을 칠할 때, 인접한 두 집은 다른 색으로 칠해야 하므로, 최소 비용을 구하는 것이 목표입니다.해결 방법문제의 상태 정의:score[i][j]: i번째 집을 j색으로 칠하는 비용을 나타냅니다.dp[i][j]: i번째 집까지 칠할 때, j색으로 칠한 최소 비용을 기록합니다.점화식:dp[i][0] (i번째 집을 빨간색으..
1. 스프링 빈(Bean)이란?스프링 프레임워크에서 빈(Bean) 은 스프링 컨테이너가 관리하는 객체를 의미합니다. 일반적인 Java 객체와 동일하지만, 스프링의 IoC(Inversion of Control) 컨테이너에 의해 생성 및 관리됩니다.🔹 스프링 빈의 특징스프링 컨테이너가 직접 객체를 생성 및 관리싱글톤(Singleton)으로 관리 (기본 설정 시)DI(Dependency Injection, 의존성 주입) 지원필요할 때 스프링 컨테이너에서 빈을 가져와 사용 가능2. @Bean 어노테이션@Bean은 개발자가 직접 제어할 수 있는 방법으로 스프링 빈을 등록할 때 사용됩니다. 주로 @Configuration과 함께 사용되며, 메서드에 붙여서 해당 메서드가 반환하는 객체를 스프링 컨테이너가 관리하는 ..
DBCP(Database Connection Pool)는 데이터베이스와의 연결을 효율적으로 관리하기 위한 기술이다. 애플리케이션이 데이터베이스와 통신할 때, 매번 새로운 커넥션을 생성하고 해제하는 것은 성능에 부담을 준다. 이를 해결하기 위해 커넥션 풀(Connection Pool) 이라는 개념이 등장했다.커넥션 풀은 일정 개수의 데이터베이스 커넥션을 미리 생성해두고, 필요할 때 가져다 쓰고 반환하는 방식으로 동작한다. 이를 통해 애플리케이션 성능을 최적화하고, 데이터베이스 부하를 줄일 수 있다.DBCP가 필요한 이유1. 커넥션 생성 비용 절감데이터베이스 커넥션을 생성할 때는 네트워크 통신, 인증, 세션 설정 등의 과정이 필요하다.매 요청마다 커넥션을 생성하면 많은 리소스가 낭비된다.DBCP를 사용하면 ..
1. @Controller란?@Controller는 Spring MVC에서 사용되는 애너테이션으로, 주로 HTML 페이지를 반환하는 경우에 사용됩니다. 뷰(View) 템플릿과 함께 사용되며, ModelAndView 또는 Model 객체를 활용하여 데이터를 전달할 수 있습니다.@Controller 예제아래는 @Controller를 사용하여 뷰를 반환하는 예제입니다.@Controllerpublic class HomeController { @GetMapping("/home") public String home(Model model) { model.addAttribute("message", "Welcome to Spring Boot!"); return "home"; /..
0 또는 양의 정수가 담긴 배열이 주어졌을 때, 이 숫자들을 조합하여 만들 수 있는 가장 큰 수를 반환하는 문제입니다. 예를 들어입력: [6, 10, 2] 출력: "6210"입력: [3, 30, 34, 5, 9] 출력: "9534330"단, 결과가 너무 클 수 있으므로 정수형이 아닌 문자열로 반환해야 합니다. 해결 과정숫자를 문자열로 변환: Arrays.stream(numbers).mapToObj(String::valueOf).toArray(String[]::new);커스텀 정렬 적용: 두 숫자를 번갈아 붙여보고 (a + b vs b + a) 더 큰 순서대로 정렬합니다.예외 처리: 배열의 첫 번째 요소가 "0"이면 "0"을 반환합니다.정렬된 숫자를 하나의 문자열로 합쳐 결과 반환. 코드 구현import ..
해싱이란?해싱(Hashing)은 입력 데이터를 고정된 크기의 값이나 키로 변환하는 과정입니다. 주로 해시 함수(Hash Function)를 사용하여 데이터를 변환하며, 변환된 결과 값을 해시 값(Hash Value) 또는 해시 코드(Hash Code)라고 합니다. 1. 비밀번호를 평문으로 저장하면 안 되는 이유데이터 유출 시 보안 위협: 만약 데이터베이스가 해킹당하면, 저장된 평문 비밀번호가 그대로 노출됩니다.다른 서비스 계정 탈취 가능성: 많은 사용자가 같은 비밀번호를 여러 서비스에서 사용하기 때문에, 하나의 비밀번호가 유출되면 다른 계정도 쉽게 해킹될 수 있습니다.법적 문제: GDPR과 같은 데이터 보호법에서는 사용자 정보를 안전하게 보호하도록 요구합니다. 2. 해싱과 암호화의 차이해싱(Hashing..