본문 바로가기

Develop51

스프링 부트(Spring Boot) JPA 게시판 - CRUD 처리하기 [Thymeleaf, MariaDB, IntelliJ, Gradle] 본 게시판 프로젝트는 단계별(step by step)로 진행되니, 이전 단계를 진행하시는 것을 권장드립니다. 본 게시판 프로젝트에서 데이터는 MariaDB로 관리하며, MariaDB가 설치되어 있지 않으시다면, 선행 작업으로 MariaDB 설치하기를 꼭! 진행해 주세요. 이전 글에서는 JPA 게시판 프로젝트 진행을 위해, 스프링 부트 프로젝트를 생성해 보았습니다. 이번에는 스프링 부트와 MariaDB를 연동하고, 게시판에 사용될 회원 테이블을 생성한 후 JPA를 가볍게 경험하는 시간을 가져볼 건데요. DB가 익숙하지 않으시거나, 데이터 소스(Data Source)에 대한 개념이 하나도 잡혀있지 않으신 분들은 아래 글을 가볍게 읽어보시기를 권장드립니다. 스프링 부트(Spring Boot) - 게시판 Mar.. 2023. 10. 26.
스프링 부트(Spring Boot) JPA 게시판 - 프로젝트 생성하기 [Thymeleaf, MariaDB, IntelliJ, Gradle] 본 JPA 게시판 프로젝트 관련 안내사항 JDK는 11 버전을 사용합니다. 화면 처리는 HTML5 기반의 자바 템플릿 엔진인 타임리프(Thymeleaf)를 사용합니다. 프로젝트(애플리케이션) 설정은 자바(Java) 기반의 설정을 사용합니다. 데이터베이스는 MariaDB를 사용합니다. DB와의 통신 역할에는 Spring Data JPA를 사용합니다. 개발 도구(IDE)는 인텔리제이(IntelliJ)를 사용합니다. 프로젝트 빌드 도구는 그레이들(Gradle)을 사용합니다. 본 글은 Spring Boot 프로젝트 생성 후 곧바로 실습할 수 있는 환경이 모두 구성되어 있다는 가정하에 진행됩니다. (JDK 설치, workspace 세팅, Java 환경 변수 설정, IDE 설치, MariaDB 설치, DBMS 툴 .. 2023. 9. 2.
5분 안에 자바(Java) 변수(variable) 완벽 이해하기 1. 변수(variable)란? 프로그래밍 언어에서 변수는 데이터(data)를 저장할 수 있는 메모리상의 공간을 의미합니다. 변수에는 데이터 타입(정수, 실수, 문자, 문자열, 참/거짓 등)과 일치하는 단 하나의 값만 저장할 수 있는데요. 프로그래밍 언어에서 변수는 데이터(data)를 저장할 수 있는 메모리상의 공간을 의미합니다. 변수에는 데이터 타입에 해당되는 단 하나의 값만 저장할 수 있습니다. 자바의 데이터 타입은 크게 '기본형'과 '참조형'으로 나뉘며, 두 가지 모두를 통틀어 '자료형(data type)'이라고 표현합니다. 기본형(primivite type) : 주로, 어떠한 값에 대한 연산이 필요한 경우 사용합니다. 계산기를 예로 들면, 사칙연산에 기본형 변수를 이용할 수 있습니다. 기본형의 개.. 2023. 8. 17.
[TOAST UI Editor] - 이미지 업로드(Image upload) 개선하기 & 데이터베이스(Database)에 에디터 내용 저장 및 불러오기 이전 글에서는 TOAST UI Editor(이하 'TUI 에디터')가 무엇인지 가볍게 알아보고, 순수 자바스크립트(JavaScript) 코드로 HTML에 에디터를 적용해 데이터를 입력해 보았습니다. 이번에는 TUI 에디터의 이미지 업로드 기능을 개선한 후, 에디터에 입력된 내용을 DB에 저장 및 조회하는 기능을 구현해 볼 건데요. 스프링 부트(Spring Boot) 환경에서 H2 Database와 JPA를 연동해 데이터를 처리합니다. 스프링 부트 참고 : 게시판 개발환경 설정하기 H2 Database 참고 : H2 Database와 JPA 연동해 보기 JPA 참고 : JPA 게시판 CRUD 구현하기 이번 글은 2번 링크('H2 Database와 JPA 연동해 보기')의 설정과 동일한 환경에서 진행되는데요.. 2023. 8. 1.
[TOAST UI Editor] - 5분 안에 게시판에 토스트 UI 에디터 적용하기 1. TOAST UI Editor란? TOAST UI Editor(이하 'TUI 에디터')는 NHN Cloud에서 개발한 오픈 소스 라이브러리로, 마크다운과 위지윅 방식 모두를 지원하는 무료 에디터입니다. 마크다운(Markdown) : '일반 텍스트 기반의 경량 마크업 언어'로, 일반적인 텍스트로 서식이 있는 문서를 작성하는 데 사용되는 언어입니다. 마크다운은 brad 님의 글에 잘 정리되어 있으니 한 번쯤은 읽어보시기를 권장드립니다. 위지윅(WYSIWYG) : 수동으로 텍스트를 입력하는 문서 작성의 진입장벽을 줄이기 위해 탄생한, GUI로 문서를 작성할 수 있는 도구입니다. 우리가 웹 사이트 게시판에서 흔히 볼 수 있는 에디터가 위지윅 방식의 에디터이며, 대표적인 위지윅 에디터 종류는 gth1123 님.. 2023. 7. 17.
5분 안에 자바(Java) 소스 코드 구조 알아보기 자바(Java)를 시작하기 전에 자바로 프로그래밍을 시작하려면 JDK(Java Development Kit)라는 개발 도구가 필요하며, 운영체제(OS)에 JDK를 설치하면 자바 가상 머신(JVM)과 자바 개발에 필요한 프로그램들이 설치됩니다. 제 블로그의 스프링 부트(Spring Boot) - 게시판 개발환경 설정하기에서 1번부터 5번까지 진행하시면 자바 프로그래밍 준비를 마치실 수 있으니, 개발환경 세팅이 필요하시다면 참고해 주세요 :) 1. 자바(Java) 소스 파일 구조 자바에서 모든 소스 코드는 Class(이하 "클래스") 안에 작성해야 합니다. 그리고, 하나의 자바 프로그램(애플리케이션)은 여러 클래스의 집합으로 이루어져 있습니다. 아래 코드는 일반적인 클래스의 구조입니다. // 1. packa.. 2023. 7. 8.
5분 안에 자바(Java Programming Language)에 대해 알아보기 1. 자바(Java)란? 자바는 썬 마이크로시스템즈에서 개발한 객체 지향 프로그래밍(Object-Oriented Programming) 언어로, 흔히 OOP 언어라고 이야기합니다. OOP의 개념은 추후에 코딩 과정에서 자세히 다루게 되니 여기서는 생략하겠습니다. 자바의 가장 큰 포인트는 운영체제(OS)에 독립적이라는 것인데요. 이에 따라 자바로 개발된 프로그램은 운영체제 종류에 관계없이 실행이 가능합니다. 자바는 프로그래밍에 필요한 다양한 라이브러리(Library)를 제공해주고 있는데요. 자바 개발자들은 이를 잘 활용해서 더욱 쉽게 프로그래밍할 수 있고, 더욱 빠르게 결과물(아웃풋)을 낼 수 있습니다. 2. 자바(Java)의 특징 아래 5개 항목은 자바의 대표적인 특징입니다. 2-1. 운영체제(OS)에 .. 2023. 6. 24.
스프링 부트(Spring Boot) - 5분 안에 H2 Database와 JPA 연동해보기 1. H2 Database란? H2 DB는 자바 기반의 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 보통 테스트 단계 또는 작은 규모의 프로젝트에서 사용되며, Gradle 또는 Maven에 의존성만 추가해 주면 쉽고 빠르게 H2 DB를 이용할 수 있습니다. (공식 사이트에서 설치해서 사용할 수도 있습니다.) H2 DB는 In-Memory Mode, Embedded Mode, Server Mode 총 세 가지의 모드를 지원해 주는데요. 여기서는 In-Memory Mode와 Embedded Mode를 이용해서 데이터를 관리하는 방법을 다루게 됩니다. 1-1) In-Memory Mode 애플리케이션(WAS) 구동 시 H2 DB 데이터를 메모리에 올려서 관리하는 방식입니다. 애플리케이션이 종료되.. 2023. 6. 18.
스프링 부트(Spring Boot) 게시판 - 첨부파일 다운로드하기 (다중 파일 업로드 & 다운로드 구현하기 3/3) [Thymeleaf, MariaDB, IntelliJ, Gradle, MyBatis] 본 게시판 프로젝트는 단계별(step by step)로 진행되니, 이전 단계를 진행하시는 것을 권장드립니다. DBMS 툴은 DBeaver를 이용하며, DB는 MariaDB를 이용합니다. (MariaDB 설치하기) 화면 처리는 HTML5 기반의 자바 템플릿 엔진인 타임리프(Thymeleaf)를 사용합니다. 이전 글에서는 게시글에 등록된 첨부파일을 상세 페이지에서 조회하는 방법과, 게시글을 수정할 때 기존에 등록된 첨부파일을 유지하는 방법, 그리고 첨부파일을 추가/변경/삭제하는 방법을 알아보았습니다. 이번에는 다중 첨부파일 업로드/다운로드 처리 중 마지막 단계인, 첨부파일을 다운로드하는 방법을 알아볼 건데요. 파일 다운로드 기능은 업로드 처리에 비해 비교적 로직이 간단합니다. 1. FileMapper 인터페.. 2023. 6. 12.
스프링 부트(Spring Boot) 게시판 - 첨부파일 추가/수정/삭제 및 기존 파일 유지하기 (다중 파일 업로드 & 다운로드 구현하기 2/3) [Thymeleaf, MariaDB, IntelliJ, Gradle, MyBatis] 본 게시판 프로젝트는 단계별(step by step)로 진행되니, 이전 단계를 진행하시는 것을 권장드립니다. DBMS 툴은 DBeaver를 이용하며, DB는 MariaDB를 이용합니다. (MariaDB 설치하기) 화면 처리는 HTML5 기반의 자바 템플릿 엔진인 타임리프(Thymeleaf)를 사용합니다. 이전 글에서는 첨부파일 관리용 테이블(tb_file)을 생성하고, 애플리케이션 전역에서 사용할 수 있는 파일 업로드용 유틸 클래스를 구현해서 첨부파일을 다중으로 업로드하는 방법을 알아보았습니다. 이번에는 게시글에 등록된 첨부파일을 상세 페이지에 출력해 주는 기능을 우선적으로 구현하고, 기존에 첨부파일이 업로드된 게시글을 수정할 때 첨부파일을 추가/변경/삭제하는 방법과, 파일에 변화가 없을 때 기존 첨부파.. 2023. 6. 3.