본문 바로가기
PROJECT

[PROJECT] Maven to Gradle ~ing

by 아이엠제니 2024. 7. 5.

 


 

 

 

이전에 Maven/Mybatis/jsp 조합으로 만들었던 홈페이지를 Gradle/JSP/Thymeleaf로 변경하는 작업을 해보려고 한다.

(아니 하고 있다.)

사실상 변경한다기보다 새로 만드는 것에 가까운..?

 

이전에 만들던 것도 끝까지 완성을 했던 게 아니라서 미흡한 게 많다.

당시에 curd를 하고, 페이지네이션이랑 댓글 기능까지 구현은 했지만!

회원가입이나 로그인 기능을 따로 넣지는 않았었다.

아니 있긴 있었다.

 

근데 그때는 spring security 같은 걸 이용해 쉽게 로그인 기능을 구현할 수 있는 방법을 몰랐다.

그래서 정말 무식하게 그 기능을 하나하나 구현하려고 했다.

그때 작성했던 코드를 보니, 패스워드 부분이 정말 장난 없었다.

 

 

[JS] 자바스크립트로 비밀번호 암호화 하기 👉 SHA-256

💡 SHA-256 'SHA-256'은 Secure Hash Algorithm 256-bit의 줄임말로, 암호학적 해시 함수 중 하나다. 해시 함수는 임의의 크기를 가진 데이터를 고정된 크기의 해시 값으로 변환하는 함수다. SHA-256은 256비트(32

devje.tistory.com

그 장난 없는 패스워드 암호화하던 것 중에 하나가 이것..(ㅎ)

 

 

아무튼 Maven에서 Gradle로 변경을 하고, 이전에 명명을 이상하게 한 게 있었다면 그것 또한 수정하려고 한다.

(명명이 너무 어렵다...)

그리고 당시에 테이블 설계도 안 하고, 그냥 주먹구구식으로 하다 보니?

 

사용자가 존재함에도 불구하고, 게시글을 작성하거나 댓글을 쓸 때는 로그인하지 않은 회원도 작성할 수 있었던 것이다.

이렇게 되어 버리니, 굳이 로그인을 할 필요가 없는 상황처럼 보였다.

그래서 비회원의 게시글 작성, 댓글 작성 등은 막고, 로그인을 한 회원만 가능하도록 하려고 한다.

 

그리고 추가적으로 Entity 속성이 추가되고, 수정된 게 많다.

아무래도 ERD 그리면서, 참고를 하다 보니!

더 추가하거나 수정할 것들이 생겼다.

 

 

+

임시 저장해 두고, 나중에 올린 글이라서 현재의 상황과는 조금 다르다.

지금은 위에서 언급한 기능들이 다 구현되기는 했다. 

현재 댓글 작성과 관련된 작업을 완료한 후에 추가 기능들에 대해서 더 생각해 볼 생각이다.

모든 기능이 구현 완료되었을 때, 다시 올리는 걸로 하고...

일단 나중에 내가 보기 위한 히스토리 정도로 올리려고 한다.

그리고 빌드 도구를 maven에서 gradle로 바꾸는 방법 정도랑 그 외 몇 개를 기록으로 남긴다.

 

 

Gradle 설치 관련해서는 Shane's planet 이 분 블로그의 도움을 받았다.

 

 

👉 Gradle 다운로드

https://gradle.org/releases/ 이동

위 홈페이지로 이동한다.

 

 

  • `binaey-only` 클릭하면, 다운로드됨

 

 

  • `gradle-8.8-bin.zip` 다운로드됨
  • 압축해제 후 `C:\Gradle` 디렉터리 안으로 이동 (C드라이브에 `Gradle` 디렉터리 직접 생성)

 

 

  • `C:\Gradle\gradle-8.8\bin`

 

 

 

  • 시스템 환경 변수 편집 > 시스템 변수 > Path 편집 > 환경 변수 편집에 추가
  • `C:\Gradle\gradle-8.8\bin`

 

  • cmd (Win+R)에서 `gradle -v` 명령어를 입력해서, Gradle 설치되었는지 확인
  • 8.8 버전 설치

 

 


 

 

  • `pom.xml`이 있는 디렉터리로 이동

 

gradle init
  • `gradle init` 진행

 

 

설치 완료

 

 

`pom.xml` 삭제

 

 

  • `Load Gradle project` 클릭하여, 그레들 프로젝트 로드

 

Build file 'F:\CrudProject\build.gradle' line: 32

A problem occurred evaluating root project 'CrudProject'.
> Could not find method providedCompile() for arguments [map(valueof(DependencyValueSource))] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

 

로드 중 에러 발생

 

주석 처리를 했다.

이거 하나만 주석 처리해야 되는 건가 하고 봤더니?

 

의존성이 꽤나 이상하게 들어간 것들이 많았다.

필요한 의존성을 형식에 맞게 다시 수정했다.

그리고 다시  Build를 진행하니, 에러가 없었다.

 

 

 


👉 ERD

간단한 ERD 설계를 했다.

초반에 설계를 했던 건데, 여기서 추가된 필드가 몇 개 있다.

하지만 크게 바뀐 건 없다.

 

이번 작업을 진행하면서 꽤나 시간이 걸렸던 건, Thymeleaf이다.

맞는 문법이라고 생각하고 적었는데, 안 되는 게 있다 보니?

보고 또 봤던 것 같다.

타임리프 문법은 잘 모르니, 구글링이나 gpt 도움을 많이 받았다.

 

Spring security 관련된 건, 예전에 봤던 책이랑 근래에 했던 강의를 통해서 배울 수 있어서!

적용을 하는 건 크게 어렵지 않게 했던 것 같다.

적용은 어렵지 않았지만, 그 권한들을 이용해서 코딩하는 게 많이 헷갈렸다.

생각보다 댓글이 나에게는 어려워서, 이건 조금 시간이 걸릴 것 같다.

 

내가 계획했던 것들이 다 구현이 된다면, 정리하는 겸 블로그에 다시 올려야겠다.

 

 

 

300x250