이전에 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 관련된 건, 예전에 봤던 책이랑 근래에 했던 강의를 통해서 배울 수 있어서!
적용을 하는 건 크게 어렵지 않게 했던 것 같다.
적용은 어렵지 않았지만, 그 권한들을 이용해서 코딩하는 게 많이 헷갈렸다.
생각보다 댓글이 나에게는 어려워서, 이건 조금 시간이 걸릴 것 같다.
내가 계획했던 것들이 다 구현이 된다면, 정리하는 겸 블로그에 다시 올려야겠다.
'PROJECT' 카테고리의 다른 글
[SOCKET] 웹소켓 댓글 작성 시 실시간 알림 기능 (0) | 2024.07.12 |
---|---|
[JAVA] 자바 계산기 만들기 (클래스 및 메소드 분리) (0) | 2024.04.17 |
[프로젝트] 인프라 windows & 우분투(ubutnu) 클러스터링 구성 재기록 (0) | 2024.02.05 |
[PROJECT] Nginx 로드밸런싱 설정 (0) | 2023.09.23 |
[PROJECT] 클러스터링 구성 (0) | 2023.09.21 |