- 신입 백엔드 개발자 면접에서 자주 나오는 질문을 모아 정리한 포스트입니다. - 모든 질문들을 정리할 수는 없지만 최대한 자주 나오는 질문들과 중요한 질문을 정리하고 있습니다. 질문들은 계속 추가할 예정입니다. - 이 포스트에 꼭 중요한 질문이 빠져있다면 댓글로 남겨주시면 반영하도록 하겠습니다. - 필자는 Java,Spring Framework를 중점으로 한 백엔드 개발자를 목표로 하고 있습니다. 따라서 글 내부에 Java 혹은 백엔드 관련 용어가 나올 수 있습니다. 📍 Spring 프레임워크가 무엇인지 설명해주세요. 스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 어플리케이션 프레임워크로 POJO 기반을 바탕으로, DI와 AOP,PSA를 지원하는 경량의 컨테이너를 제공하는 프레임워크를 의미합니다. ..
스프링
@RequiredArgsConstructor란? Lombok이 제공하는 어노테이션 중 하나로, 주로 생성자를 자동으로 생성해주는 기능 수행 이 어노테이션을 사용하면 클래스의 필드를 기반으로 한 인자를 받는 생성자를 자동으로 생성 생성자는 해당 클래스의 모든 'final' 필드나 '@NonNull' 어노테이션이 붙은 필드에 대한 생성자 인자를 포함 @RequiredArgsConstructor를 사용한 예시 import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class Book { private final String title; private final String author; private final int year; // 다른..
영속 계층의 처리 테이블을 반영하는 VO(Value Object) 클래스의 생성 MyBatis의 Mapper 인터페이스의 작성 / XML 처리 작성한 Mapper 인터페이스의 테스트 영속 계층의 구현 준비 VO 클래스의 작성 VO 클래스를 생성하는 작업은 테이블 설계를 기준으로 작성하면 됩니다. 현재 tbl_board 테이블의 구성은 아래와 같습니다. 프로젝트에 org.noel.domain 패키지를 생성하고, BoardVO 클래스를 정의합니다. ▶ BoardVO 클래스 package org.noel.domain; import java.util.Date; import lombok.Data; @Data public class BoardVO { private Long bno; private String tit..
테이블생성과 Dummy(더미) 데이터 생성 SQL Developer를 이용해서 PART 1에서 작성한 book_ex 계정을 통해서 테이블을 생성합니다. 게시물은 각 게시물마다 고유의 번호가 필요합니다. 오라클의 경우 시퀀스(sequence)를 이용해서 이러한 작업을 처리합니다. 시퀀스를 생성할 때는 데이터베이스의 다른 오브젝트들과 구분하기 위해서 'seq_'와 같이 시작하는 것이 일반적입니다. 테이블을 생성할 때는 'tbl_'로 시작하거나 't_'와 같이 구분이 가능한 단어를 앞에 붙여주는 것이 좋습니다. tbl_board 테이블은 고유의 번호를 가지기 위해서 bno 칼럼을 지정했고, 제목(title), 내용(content), 작성자(writer)를 칼럼으로 지정합니다. 테이블을 설계할 때는 가능하면 레..
MyBatis MyBatis는 흔히 'SQL 매핑(mapping) 프레임워크'로 분류되는데, 개발자들은 JDBC 코드의 복잡하고 지루한 작업을 피하는 용도로 많이 사용합니다. https://mybatis.org/mybatis-3/ mybatis – MyBatis 3 | Introduction What is MyBatis? MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of res..
커넥션 풀 설정 일반적으로 여러 명의 사용자를 동시에 처리해아하는 웹 애플리케이션의 경우 데이터베이스 연결을 이용할 때는 '커넥션 풀(Connection Pool)'을 이용하므로, 아예 스프링에 커넥션 풀을 등록해서 사용하는 것이 좋다. Java에서는 DataSource라는 인터페이스를 통해서 커넥션 풀을 사용한다. DataSource를 통해 매번 데이터베이스와 연결하는 방식이 아닌, 미리 연결을 맺어주고 반환하는 구조를 이용하여 성능 향상을 한다. 커넥션 풀은 여러 종류가 있고, spring-jdbc 라이브러리를 이용하는 방식도 있지만, 나는 최근 유행하는 HikariCP를 이용할 것이다. GitHub - brettwooldridge/HikariCP: 光 HikariCP・A solid, high-per..
프로젝트의 JDBC 연결 본격적인 예제를 구성하기 위해서는 반드시 JDBC 연결에 문제가 없는지 확인해야 한다. 우선 JDBC 연결을 하려면 JDBC Driver가 필요하다. 하지만 Oracle 데이터베이스의 JDBC Driver는 11g까지 공식적으로 Maven으로는 지원되지 않기 때문에 직접 jar 파일을 프로젝트에 추가하는 방법이 안전하지만 JDBC 연결이 되는지 확인만 할 것이기 때문에 Maven을 이용할 것이다. Maven Repository (https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6/11.2.0.4)에 접속해서 Ojdbc의 Maven 코드를 복사해서 pon.xml 에 내용 추가하기 com.oracle.database..
오라클 설치 Oracle Database는 'Express Edition(이하 XE)'이라고 하는 단일 데이터베이스 구성용 프로그램을 설치해서 사용한다. (2023년 10월 현재 21 버전만 다운로드가 가능한 상황) 이 책('코드로 배우는 스프링 웹프로젝트')의 예제는 11g XE를 이용하기 때문에 나 역시 11g XE를 사용할 것이다. 2021년 중반부터 11g XE는 오라클 사이트에서 다운로드가 불가능하므로 따로 책에서 준 링크를 이용해서 다운로드 받을 것이다. 혹시나 11g XE를 다운받고 싶다면 아래 링크 들어가서 다운받기 XE Prior Release Archive Getting Started: Support Oracle Database Express Edition (XE) is a commun..