본문 바로가기

분류 전체보기837

JPA JPA란? Java Persistence API의 약어로, 자바 ORM 기술에 대한 API 표준 명세이다. 쉽게 이야기해서 인터페이스를 모아둔 것이다. JPA를 사용하려면 JPA를 구현한 ORM 프레임워크를 선택해야 하는데, 기본값으로 하이버네이트 프레임워크를 사용한다. JPA를 쓰는 이유 JPA를 사용하면 객체지향 프로그래밍과 관계형 데이터베이스 간의 패러다임 불일치를 해결 할 수 있다. 또한, JPA를 통해 데이터베이스와의 상호작용을 편리하게 만들 수 있다. 개발자는 SQL 쿼리를 직접 작성하는 번거로움을 줄이고, POJO 기반 모델을 적용하여 객체 지향적인 코드를 작성할 수 있다. JPA 단점 복잡한 SQL은 생성하지 못할 때도 있고, 직접 SQL을 호출하는 것보다 성능이 낮을 수 도 있다. 엔티티.. 2023. 9. 20.
백준 3085 3085번: 사탕 게임 문제 상근이는 어렸을 적에 "봄보니 (Bomboni)" 게임을 즐겨했다. 가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다. 사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 보드의 크기 N이 주어진다. (3 ≤ N ≤ 50) 다음 N개 줄에는 보드에 채워져 있는 사탕의 색상이 주어진다. 빨간색은 C, 파란색은 P, 초록색은 Z, 노란색은 Y로 주어진다. 사탕의.. 2023. 9. 18.
백준 17484 17484번: 진우의 달 여행 (Small) 문제 우주비행이 꿈이였던 진우는 음식점 '매일매일싱싱'에서 열심히 일한 결과 달 여행에 필요한 자금을 모두 마련하였다! 지구와 우주사이는 N X M 행렬로 나타낼 수 있으며 각 원소의 값은 우주선이 그 공간을 지날 때 소모되는 연료의 양이다. 진우는 여행경비를 아끼기 위해 조금 특이한 우주선을 선택하였다. 진우가 선택한 우주선의 특징은 아래와 같다. 1. 지구 -> 달로 가는 경우 우주선이 움직일 수 있는 방향은 아래와 같다. 2. 우주선은 전에 움직인 방향으로 움직일 수 없다. 즉, 같은 방향으로 두번 연속으로 움직일 수 없다. 진우의 목표는 연료를 최대한 아끼며 지구의 어느위치에서든 출발하여 달의 어느위치든 착륙하는 것이다. 최대한 돈을 아끼고 살아서 달에.. 2023. 9. 16.
백준 1018 1018번: 체스판 다시 칠하기 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다. 보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 .. 2023. 9. 15.
Spring MVC MVC란? MVC는 소프트웨어 디자인 패턴으로, 애플리케이션을 세 가지 구성 요소로 분리하여 구조화하는 방법이다. 모델(Model) : 애플리케이션의 데이터와 비즈니스 로직을 나타낸다. 모델은 데이터의 상태를 관리하고, 데이터 변경 시 알림을 View에 전달한다. 뷰(View) : 데이터를 사용자 인터페이스로 표시허고, 사용자에게 정보를 제공한다. 뷰는 모델의 데이터를 표시하기 위해 모델에게 의존하며, 데이터가 변경되면 갱신된다. 컨트롤러(Controller) : 사용자의 입력을 받고 모델 및 뷰 간의 상호작요을 조정한다. 컨트롤러는 요청을 처리하고 모델을 업데이트 하며, 업데이트된 데이터를 뷰에 전달한다. Spring MVC란? Spring MVC는 Java 기반 웹 애플리케이션을 개발할 때 MVC 아.. 2023. 9. 15.
@Bean, @Configuration @Bean @Bean 어노테이션을 사용해 수동으로 빈을 등록할 수도 있다. 개발자가 직접 제어가 불가능한 라이브러리를 활용할 때 애플리케이션 전범위적으로 사용되는 클래스를 등록할 때 다형성을 활용하여 여러 구현체를 등록해주어야 할 때 @Bean을 이용한 수동 빈 메서드는 스프링 빈 안에만 구현되어 있다면 모두 동작한다. @Configuration @Cobnfiguration 어노테이션 내부에는 @Component 어노테이션이 붙어 있어 @Configuration이 붙어 있는 클래스도 스프링 빈으로 등록된다. @Configuration을 따로 만든 이유는 CGLIB로 프록시 패턴을 적용해 수동으로 등록하는 스프링 빈이 반드시 싱글톤으로 생성됨을 보장하기 위해서이다. 즉 @Bean 메서드를 여러번 호출하여도.. 2023. 9. 14.