전체 글(137)
-
[Java] 예외와 예외 클래스
예외란?실행 오류가 발생하는 것을 에러라고 한다. 자바에서는 예외라고 하는 에러가 있다. 예외란 잘못된 사용 또는 코드로 인한 오류를 말한다. 예외가 발생하면 프로그램은 곧바로 종료된다. 하지만 예외 처리를 통해 계속 실행 상태를 유지할 수 있다. 일반 예외 : 컴파일러가 예외 처리 코드 여부를 검사하는 예외실행 예외 : 컴파일러가 예외 처리 코드 여부를 검사하지 않는 예외 예외 처리 코드예외 처리 코드는 예외가 발생했을 때에 프로그램의 갑작스러운 종료를 막고 정상 실행을 유지할 수 있도록 처리하는 코드를 예외 처리 코드라고 한다. 예외 처리 코드는 try-catch-finally 블록으로 구성된다. try가 예외 없이 실행되면 catch 블록은 실행되지 않고, 예외가 실행되면 catch가 실행된다...
2024.08.29 -
[SpringBoot] 템플릿 설정
템플릿이란?템플릿은 자바 코드를 삽입할 수 있는 HTML 형식의 파일을 말한다. 템플릿 엔진에는 Thymeleaf, Mustache, Groovy, Freemarker, Velocity 등이 있는데 여기서는 타임리프를 사용한다. 타임리프를 build.gradle 파일을 수정하여 설치한다. implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' 템플릿 사용하기src/main/resources 디렉터리에서 templates를 선택하여 html 파일을 만든다. 이제 @ResponseBody가 필요없으니 삭제하고 템플릿 ..
2024.08.28 -
[SpringBoot] 리포지터리 데이터베이스 관리 기본 기능
리포지터리란?데이터를 관리하려면 데이터베이스와 연동하는 JPA 리포지터리가 필요하다. 리포지터리는 데이터베이스의 데이터를 저장, 조회, 수정, 삭제 등을 할 수 있도록 도와주는 인터페이스다. 리포지터리는 데이터를 관리하는 메서드를 제공한다. public interface QuestionRepository extends JpaRepository { Question findBySubject(String subject); Question findBySubjectAndContent(String subject, String content); List findBySubjectLike(String subject);}public interface AnswerRepository extends JpaRepositor..
2024.08.27 -
[SpringBoot] 엔티티로 테이블 매핑하기
엔티티란?엔티티는데이터베이스 테이블과 매핑되는 자바 클래스를 말한다. 질문과 답변을 할 수 있는 게시판을 작성하기 위해서는 질문과 답변 데이터를 제정할 데이터베이스 테이블과 매핑된다. 질문 엔티티 엔티티를 만들기 위해서는 @Entity로 애너테이션을 적용해야 한다. @Getter@Setter@Entitypublic class Question { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column(length = 200) private String subject; @Column(columnDefinition = "TEXT") private String content; private LocalD..
2024.08.27 -
[SpringBoot] JPA로 데이터베이스 사용하기
ORM이란?ORM은 SQL을 사용하지 않고 자바 문법으로 데이터베이스를 관리하는 도구이다. DBMS 종류와 상관없이 일관된 자바 코드를 사용할 수 있어서 유지, 보수가 편하다는 장점이 있다. 데이터를 관리하는데 사용되는 ORM 자바 클래스는 엔티티라고 한다. JPA란?스프링 부트는 JPA를 ORM의 기술 표준으로 사용한다. JPA는 인터페이스 모음으로 구현할 실제 클래스가 필요하다. H2 데이터베이스 설치하기build.gradle 파일에 다음과 같이 입력하여 H2 데이터베이스를 설치한다. runtimeOnly 'com.h2database:h2' src/main/resources 디렉터리의 application.properties 파일에 새로운 설정을 추가해야 H2를 사용할 수 있다. spring.h2..
2024.08.27 -
[SpringBoot] 컨트롤러, 매핑
웹 브라우저에서 요청이 발생하면 URL이 스프링 부트에 매핑이 되어 있어야 하고, 이를 위해서 먼저 컨트롤러가 만들어져야 한다. 컨트롤러는 클래스 위에 @Controller 애너테이션을 적용하여 만들 수 있다.@Controllerpublic class MainController{ @GetMapping("/myhome") public void index(){ System.out.println("myHome"); }} @GetMapping 애너테이션은요청된 URL과의 매핑을 담당한다. 다만, 매핑을 설정해도 리턴값을 지정하지 않으면 오류가 나기 때문에 @ResponseBody를 통해 응답을 해야한다. @Controllerpublic class MainController{ @GetMappin..
2024.08.26