백엔드 기술의 기본은 게시판이다.
국비학원을 다닐 때 담당 강사님께서 항상 하셨던 말씀이 있다.
"신입의 업무 투입 기준은 게시판을 8시간 안에 만들 수 있는지이다."
수업들을 당시에는 그런가보다 하고 넘겼었는데 실제로 게시판을 만드려고 준비하다보니 문제가 몇 가지 있었다.
첫번째 문제는 "어떤 기술을 적용할 것인가" 이다.
당장 java 기반의 백엔드 스킬을 가지고 있다고 하더라도 spring 프레임워크를 사용할 것인지, 아니면 spring boot를 사용할 것인지 부터 시작해서 database를 어떤제품을 사용할 것인지까지 다양한 조합이 나온다. 또한 화면처리를 서버사이드에서 jsp나 thymeleaf를 사용하여 처리할지 혹은 restful API방식으로 react나 vue 등의 프론트엔드 언어로 처리할 것인지도 고려사항이 된다. 취직을 위해 백엔드 게시판을 포트폴리오로 작성하고자 하는 신입에게는 이는 큰 고민거리가 된다. 당장 하나의 언어를 다루는 것도 벅찬데 게시판을 시작도 하기전에 너무나 다양한 고려사항이 생기는 것이다.
두번째 문제는 "어디까지 구현할 것인가" 이다.
백엔드 게시판이라는 검색어로 검색을 하다보면 사람들마다 게시판에 대한 기준이 매우 다른 것을 알 수 있다. 누군가는 crud기능만 가능한 것을 게시판이라고 하는 경우도 있고 누군가는 로그인과 댓글, 다중사진첨부 등 기본적으로 실제 웹에서 사용되는 기술을 모두 포함한 것이 게시판이라고 하는 경우도 있다. 그래서인지 게시판의 기능을 어디까지 구현할 것인가에 대한 질문도 종종 보인다.
따라서 게시판을 구현은 위 두가지 문제에 대한 정리가 끝난 후에 구현을 해야한다. 본 게시물에서 게시판 구현을 위해 사용하는 기술과 구현범위는 아래와 같다.
1. 사용기술
-spring boot(프레임워크)
-mysql(데이터베이스)
-mybatis(데이터엑세스)
-thymleaf(템플릿엔진, 화면처리)
2. 구현범위
-select(목록조회, 상세조회)
-insert(게시글작성)
-update(게시글수정)
-delete(게시글삭제)
-사진첨부(단일첨부, 다중첨부)
spring 프레임워크에 비해 설정이 간편하고 다양한 편의 기능을 제공하는 spring boot와 설치와 사용이 비교적 간편한 mysql을 기반으로 게시판을 만들어보려한다. db는 사실 rdbms 라면 표준sql기반으로 개발을 하기 때문에 연동방법만 약간 차이가 있을 뿐 게시판을 구현하는 정도의 레벨에서는 큰 차이가 없다.
화면구성을 어떻게 할것인가가 사실 가장 큰 고민거리인데 jsp는 너무 낡았고 그렇다고 restful API로 구현하려니 프론트언어를 다뤄야 하는데다가 클라이언트-서버 연동 세팅등에서 좀 더 복잡해지기 때문에 이번 프로젝트에서는 최대한 서버사이드에서 모두 끝낼 수 있도록 템플릿 엔진을 thymeleaf로 선택하게 되었다.
김영한님의 spring boot + jpa 강의에서도 최대한 백엔드에 집중하기 위해서 thymeleaf를 선택해서 사용하는데 사실 템플릿 엔진은 편한것을 사용하면 될 것 같다.
본 프로젝트가 끝나면 다양한 조합으로 게시판을 구현해볼 생각인데 기회가 된다면 리액트와 spring boot 게시판도 구현할 생각이다.
다음 게시물부터는 본격적으로 게시판을 구현해보자.
'만들자 > 게시판만들기' 카테고리의 다른 글
[게시판]spring boot + mybatis + mysql 로 게시판 만들기 -5(조회) (0) | 2024.06.11 |
---|---|
[게시판]spring boot + mybatis + mysql 로 게시판 만들기 -4(화면연동) (0) | 2024.06.05 |
[게시판]spring boot + mybatis + mysql 로 게시판 만들기 -3(DB연동) (1) | 2024.06.04 |
[게시판]spring boot + mybatis + mysql 로 게시판 만들기 -2(DB세팅) (0) | 2024.06.03 |
[게시판]spring boot + mybatis + mysql 로 게시판 만들기 -1(서버세팅) (0) | 2024.05.31 |