목차

프로젝트 소개

학원에서 개발자 양성 교육을 들으면서 Spring Framework를 사용하면서  프로젝트를 진행한 경험이 있습니다.

하지만 기술지원으로 1년간 근무하면서 코딩을 많이 까먹었다고 생각하여 부족한 부분들을 채우기 위해 Spring Boot 와 JPA 등 강의를 들으며 지식을 쌓았다.

강의를 들은 후 혼자서 공부한 것을 토대로 프로젝트를 진행해보고자 사용해보지 않았던  Spring Boot기반으로 프로젝트를 진행해보고자한다.

또한 이번 프로젝트를 진행하면서 핵심 목표는 무조건 책과 강의를 따라 만드는 것이 아닌 내가 직접 기능에 대한 구현 방법을 고민하고, 왜 이런 방법으로 해야하는지 항상 고민하는 습관을 만드는 것이다.

 

동물의 숲 사이트 

프로젝트는 동물의 숲 사이트로 평소 동물의 숲을 즐겨하면서 집 인테리어를 자주 바꾸는 편인데 꾸민 방을 자랑할 수 잇는

인스타그램 같은 사이트가 있으면 좋겠다고 생각하여 동물의 숲을 주제로 정하게 되었다.

 

만들고 싶은 기능

1. 숲 자랑하기

2. 집 자랑하기

3. 동물 인기 투표

4. 질문 방

 

기술 스택

Spring Boot

Thymeleaf

MySQL

sts (intellij를 사용하고 싶었지만 유로 버전은 비싸고 intellij community 는 DB연결이 되지 않아 어쩔 수 없었다..)

 

구현할 기능

우선 기본인 crud 부터 한 후에 다른 기능들을 추가할 계획이다.  추후 게시판과 댓글 좋아요 기능을 추가

- 회원 기능

회원 가입

로그인/ 로그아웃

비밀번호 찾기

회원정보보기

회원정보 수정

 

-게시판

글 작성, 수정, 삭제

글 상세보기

목록 보기

페이징

검색하기

좋아요 누르기

정렬 ( 좋아요 많은 순, 댓글 순, 최신신 , 오래된 순)

 

- 댓글 기능

댓글 작성, 수정, 삭제

답글 작성, 수정, 삭제

 

 

 

 

'개인프로젝트' 카테고리의 다른 글

[MySQl] MySQL 설치하기  (0) 2024.01.19

스프링부트에서 html 페이지로 이동할경우

@Controller를 사용하여 resource/templates에 있는 페이지를 자동으로 이동한다

 

 

사용방법

 

1. 타임리프

타임리프는 static 폴더 안에 매핑되는 html 파일을 찾아 렌더링 해준다

타임리프란, 스프링에서 제공해주는 템플릿 엔진이다

 

build.gralde에 아래와 같은 코드를 추가한다

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

 

 

2. Controller코드

home.html를 resource/templates 아래 있는지 확인후 있을 경우 return 해준다

 

 

 

*** 주의할점 ***

이 때 @RestController를 사용하면 html 페이지를 return 하지 않는다

 

@Controller 는 주로 @Web페이지의 컨트롤러에서 사용된다

Web 페이지용 컨트롤러는 JSP나 템플릿 엔진 View로 전환 응답의 HTML을 생성하기 때문에

기본적으로 메소드의 반환 값은 View 전환 대상을 지정할때 사용한다

 

@RestControllerJson이나 XML 등을 반환하는 WebAPI용 컨트롤러로 사용한다

이것은 View로 전환하지 않기 때문에 메소드의 값은 응답의 내용이 된다.

 

필자는 @RestController가 @Controller와 @ResponseBody의 동작을 조합한 어노테이션으로 알고 있었다.

그래서 @RestController가 @Controller의 기능을 갖고 있으니깐

@Controller 대신 @RestController를 사용해도 될 줄 알았는데

@ResponseBody 기능도 있기에 그 응답이 ResponseBody에 담겨 View 템플릿으로 렌더링 할 수없다

 

 

참고:https://thalals.tistory.com/221

 

 

 

자바에서 String 문자열 생성 방식

1. new String()

2. String literal("") 

 

두 개 차이 : 저장공간(메모리)의 차이

new 연산자를 사용하여 String을 생성할 경우

Heap 메모리 영역에 저장됨

 

리터럴(literal) 을 사용하여 String을 생성할 경우

Heap 안에 있는 String constant pool 영역에 생성

 

 

 

 

String s1 = "Cat";
String s2 = "Cat";
String s3 = new String("Cat");
  • literal로 생성한 s1, s2는 동일한 객체를 바라보고, new String()으로 생성한 s1은 다른 메모리 주소의 객체를 바라본다
  • String literal로 생성한 객체가 이미 존재한다면, 해당 객체는 이미 생성되어 있는 String constant pool 영역을 참조한다
  • new 연사자로 생성한 String 객체는 같은 값이 String pool에 존재하더라도, Heap영역에 별도로 객체를 생성한다.

 

System.out.println(s1.equals(s3)); //true 
System.out.println(s1 == s2);	//true
System.out.println(s1 == s3);	//false

 

  • equals값이 동일한지 비교하고, ==메모리상 동일한 객체인지 비교한다
  • s1과 s3는 값은 동일하지만 메모리상 저장된 곳이 다르기 때문에 false가 나온다
  • s1과 s2는 모두  literal을 사용한 동일한 문자열이기 때문에 동일한 주소값을 바라보므로 true가 나온다

 

 

참조 : https://yeoonjae.tistory.com/entry/Java-String-literal-%EA%B3%BC-new-String-%EC%9D%98-%EC%B0%A8%EC%9D%B4

'java > 공부' 카테고리의 다른 글

[JAVA] String, StringBuffer, StringBuilder 차이  (0) 2024.01.31
[JAVA] static 변수와 static 메소드  (0) 2024.01.31

MySQL 설치하려면 순서대로 따라하면 수월하게 설치할 수 있다

 

1.MySQL 설치하기

아래 다운로드 페이지로 들어간다

https://dev.mysql.com/downloads/windows/installer/8.0.html

 

MySQL :: Download MySQL Installer

Note: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Server.

dev.mysql.com

 

mysql-installer-community8.0.21.0.msi 파일 다운로드 클릭 후

하단의 [No thanks, just start my download.] 클릭하여 로그인 하지 않고도 다운 가능

 

2.다운로드한 설치 파일 열기

필요한 부분만 설치하도록 [Custom] 선택 후 [Next] 클릭

 

 

3. 설치할 제품 선택

설치할 제품 총 3가지

- [MySQL Servers] – [MySQL Server] – [MySQL Server 8.0] – [MySQL Server 8.0.33 – X64]

- [Applications] – [MySQL Workbench] – [MySQL Workbench 8.0] – [MySQL Workbench 8.0.33 – X64]

- [Documentation] – [Samples and Examples] – [Samples and Examples 8.0] – [Samples and Examples 8.0.33 – X86]

 

 

 

4.선택한 3개의 항목 확인 후 [Excute] 클릭하여 설치

설치 완료되면 [Excute] 버튼이 [Next]로 바뀜 [Next] 클릭

 

 

 

 

5. Type and Networking

[Config Type]을 ‘Development Computer’로 선택

[TCP/IP]가 체크된 상태에서 [Port]가 ‘3306’인 것을 확인

[Open Windows Firewall ports for networkaccess]도 체크

 

 

6. Authentication Method

연동을 원활하게 하기 위해  ‘Use Legacy Authentication Method’를 선택하고 [Next] 클릭

 

7. MySQL 관리자(Root)의 비밀번호를 설정

기억하기 쉽게 ‘0000’으로 지정

 

 

 

 

8. Windows Service

MySQL 서버를 윈도우즈의 서비스로 등록하기 위한 설정

[Windows Service Name]은 ‘MySQL’로 변경

 

 

 

 

9. Server File Permissions

따로 설정할거 없음

 

 

 

10. Apply Configuration

설정된 내용을 적용하기 위해 [Execute] 버튼을 클릭

각 항목에 모두 초록색 체크가 표시되면 [MySQL Server]에 대한 설정 완료
[Finish] 버튼을 클릭해서 설정을 종료

 

 

 

 

11. Produect Configration

MySQL Server 8.0.21은 설정이 완료되었으며,
두 번째 Samples and Examples 8.0.21의 설정을 위해 [Next] 버튼을 클릭

 

 

 

 

 

12.Connect To Server

연결할 서버가 보이고 [User name(사용자 이름)]에 ‘root’가 입력되어 있음

앞에서 설정한 패스워드(나는 ‘0000’ 으로 했었음) 입력

[Check] 버튼을 클릭하면 [Status]가 ‘Connection succeeded’로 변경되고,
연결이 성공되면 [Next] 버튼을 클릭

 

 

 

 

13. 쭉쭉 넘어가면됨

 

14. 설치 완료

 

15. 끝

'개인프로젝트' 카테고리의 다른 글

[개인 프로젝트] 1. 프로젝트 기획  (0) 2024.01.25

+ Recent posts