분류 전체보기 225

Hibernate

데이터베이스에 저장된 데이터와 프로그램의 객체를 매핑하는 기술. Mybatis와 기능 자체는 비슷하지만 Hibernate는 ORM(Object Relational Mapping) 프레임워크라는 차이점이 있다. ORM (Object Relational Mapping) 1. ORM 관계형 DB 테이블을 객체지향적으로 사용하기 위한 기술 중 하나로 객체(Object)와 관계(Relational)를 연결(Mapping)해주는 기술을 의미한다. ORM을 논할 때 함께 나오는 JPA(Java Persistence API)는 자바 ORM 기술에 대한 자바 API 표준 명세를 의미한다. - DB 테이블 자체를 하나의 객체로 이용한다. - 기존의 방식: 테이블이 변경될 경우 테이블을 수정한 후, 모든 소스에서 추가 수정..

BACK-END/JPA 2023.11.01

JPA의 구현체

JPA(Java Persistence API)의 구현체 1. Hibernate 자바 언어를 위한 ORM 프레임워크. JPA 인터페이스를 구현하며 내부적으로 JDBC API를 사용한다. 특징 - 관계형 데이터베이스와 객체의 패러다임 불일치 문제를 해결할 수 있다. - 영속성 컨텍스트(엔티티를 영구저장하는 환경) 제공 장점 1. 생산성 - SQL을 직접 사용하지 않고, 메소드 호출만으로 쿼리를 수행한다. SQL 반복 작업을 하지 않으므로 생산성이 높아진다. 2. 유지보수 - 테이블 컬럼이 변경되었을 때, 테이블과 관련된 DAO의 파라미터, 결과, SQL 등을 대신 수행한다. 3. 특정 벤더에 종속되지 않음 - JPA는 추상화된 데이터 접근 계층을 제공하기 때문에 특정 벤더에 종속되지 않는다. - 설정 파일에..

BACK-END/JPA 2023.10.31

[코딩테스트 입문] 구슬을 나누는 경우의 수

[문제 설명] 머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요. [제한사항] 1 ≤ balls ≤ 30 1 ≤ share ≤ 30 구슬을 고르는 순서는 고려하지 않습니다. share ≤ balls [입력 예] balls share result 3 2 3 5 3 10 [출력 예] - 입출력 예 #1 서로 다른 구슬 3개 중 2개를 고르는 경우의 수는 3입니다. - 입출력 예 #2 서로 다른 구슬 5개 중 3개를 고르는 경우의 수는 10..

[코딩테스트 입문] 공 던지기

[문제 설명] 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. [제한사항] 2

[코딩테스트 입문] 숨어있는 숫자의 덧셈(2)

[문제 설명] 문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요. [제한사항] 1 ≤ my_string의 길이 ≤ 1,000 1 ≤ my_string 안의 자연수 ≤ 1000 연속된 수는 하나의 숫자로 간주합니다. 000123과 같이 0이 선행하는 경우는 없습니다. 문자열에 자연수가 없는 경우 0을 return 해주세요. [입출력 예] my_string result "aAb1B2cC34oOp" 37 "1a2b3c4d123Z" 133 [입출력 예 설명] 입출력 예 #1 "aAb1B2cC34oOp"안의 자연수는 1, 2, 34 입니다. 따라서 1 + 2..

[코딩테스트 입문] 진료순서 정하기

[문제 설명] 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. [제한사항] 중복된 원소는 없습니다. 1 ≤ emergency의 길이 ≤ 10 1 ≤ emergency의 원소 ≤ 100 [입출력 예] emergency result [3, 76, 24] [3, 1, 2] [1, 2, 3, 4, 5, 6, 7] [7, 6, 5, 4, 3, 2, 1] [30, 10, 23, 6, 100] [2, 4, 3, 5, 1] [입출력 예 설명] 입출력 예 #1 emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 ..

[BaseBall GO 리뷰] 후기 게시글 검색

게시글 목록 조회 페이지는 PageRequesetDTO에서 page, size 값만 처리해서 게시글 페이지를 출력시킨다. 이 때, PageRequestDTO 에서 type과 keyword를 추가하면 검색 조건에 따른 게시글을 조회하여 출력시킬 수 있다. 서버 측에서 검색 처리를 위해 DTO에 값을 추가한다. - Controller는 그대로, PageRequestDTO에만 type, keyword를 추가한다. // Controller @GetMapping(value = {"", "/"}) public String list(PageRequestDTO pageRequestDTO, Model model) { model.addAttribute("result", landersService.getList(pageRe..

BACK-END/Springboot 2023.01.30

[BaseBall GO 리뷰] 후기 게시글 등록

※ Thymeleaf 템플릿 엔진(Template Engine) 중 하나. (템플릿 엔진: HTML과 데이터를 결합한 결과물을 만들어주는 도구) JSP와 같이 서버에서 컨트롤러가 전달하는 데이터를 이용하여 클라이언트에게 응답할 브라우저 화면을 동적으로 구성한다. => Spring Boot에서 JSP를 사용하려면 호환 및 환경설정에 어려움을 겪을 수 있기 때문에, Dependency 추가만으로 간편하게 이용할 수 있는 Thymeleaf의 사용을 권장한다. 후기 게시글 등록 LandersStadium 클래스를 기준으로 StadiumDTO를 작성한다. - StadiumDTO 클래스 내부에 경기장 이미지도 포함되어야 하므로 StadiumImageDTO 클래스도 작성해야 한다. - 이 때, StaadiumImag..

BACK-END/Springboot 2023.01.30

[BaseBall GO 리뷰] 후기 게시글 목록 및 후기 게시글 조회

게시글 목록 조회 JPQL의 결과로 나오는 Object[]를 DTO로 변환하여 게시글 목록을 출력할 수 있다. - Objcet[]의 내용을 파라미터로 전달받아서 StadiumDTO를 구성한다. => LandersService의 entityToDTO() 메소드를 이용하여 처리할 수 있다. - entityToDTO의 파라미터로 Member를 처리할 수 있다. 하지만 여기에서는 entity에 Member 정보를 담아서 한 번에 처리하도록 했다. ※ 추후에 변경하는 것이 좋을 것 같다. > 불필요한 데이터의 중복 default StadiumDTO entityToDTO(LandersStadium entity) { StadiumDTO stadiumDTO = StadiumDTO.builder() .sno(entity..

BACK-END/Springboot 2023.01.30