[SPRINGA] 프로젝트 생성(회원제 게시판)

JayKim·2023년 6월 24일
0

국취제

목록 보기
1/2
post-thumbnail

springA 프로젝트 생성

새프로젝트 : springA (회원제 게시판)
패키지 : net.softsociety.springA
하위 패키지 : controller, service, dao, domain, util, security
테이블 : 회원정보, 게시글, 리플(별도의 테이블 ; 정규화)



1. springA 새 프로젝트 생성

Name : SpringA
Type : Gradle - Groovy
Packaging : Jar
Java Version : 8
Language : Java
Artifact : SpringA
Description : 회원제 게시판 연습
Package : net.softsociety.springA


Project Dependency 설정
->
Lombok
MyBatis Framework
ORacle Driver
Spring Boot Devtools
Spring Security
Spring Web
Thymeleaf

프로젝트 생성 완료



2. [Oracle SQL Developer] 테이블 생성

springA_sql.txt 파일 생성 후 테이블 설계

-- springA 예제 테이블

-- 회원정보
create table springA_member (
	memberid		varchar2(20)	primary key,	--사용자 식별 아이디
	memberpw		varchar2(100)	not null,		--비밀번호
	membername		varchar2(30)	not null,		--사용자 이름
	email			varchar2(50)			,		--이메일
	phone			varchar2(30)			,		--전화번호
	address			varchar2(200)			,		--주소
	enabled			number(1) default 1 check (enabled in (0, 1)), --계정상태. 1-사용가능, 0-불가능
	rolename		varchar2(20) default 'ROLE_USER' check (rolename in ('ROLE_USER', 'ROLE_ADMIN'))
);

insert into spring5_member (memberid, memberpw, membername, email, phone, address)
values ('aaa', '123', '홍길동', 'aaa@aaa.com', '010-1111-1111', '서울시 강남구 삼성동');

-- 게시글

-- 게시글 번호 시퀀스

-- 리플

-- 리플 번호 시퀀스

Oracle SQL Developer 에서 테이블 설계 후 실행

hr계정 refresh 해서 테이블 구조 및 데이터 잘 들어왔는지 체크

새로운 SQL 워크시트 생성 단축키 :

ALT + F10



3. application properties 설정

application.properties 설계
-> 메모장파일로 항상 저장해두고 copy해 온뒤,
port number, path, typwe-alias, mapper위치에 맞게 수정하기

# http://localhost:10288/springA

#접속 포트번호
server.port=10288

#Context Path
server.servlet.context-path=/springA

#Logback 사용. 전체를 대상으로 로깅 레벨 지정
#error>warn>info>debug>trace
logging.level.root=info

#특정 패키지를 대상으로 로깅 레벨 지정
logging.level.net.softsociety.springA=debug

# 오라클 연결 설정
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xe
spring.datasource.username=hr
spring.datasource.password=hr 

# MyBatis type-alias 지정 패키지
mybatis.type-aliases-package=net.softsociety.springA.domain

# Mybatis mapper 위치 설정
mybatis.mapper-locations=mappers/**/*.xml


4. 하위패키지 설계

controller, service, dao, domain, util, security 설게

HomeController.java 설계

Q. HomeController 역할
스프링 프레임워크는 MVC패턴을 사용하고 있고,
여기서 Controller는 화면(View)과 비즈니스 로직(Model)를 연결시키는 다리 역할을 한다.

HomeController 설계 체크사항

  • @Controller 어노테이션
  • GetMapping 어노테이션
  • 포워딩 위치 확인 & 포워딩 도착지 설계
  • package net.softsociety.springA.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @Controller
    public class HomeController {
    
    	@GetMapping({"/", ""})
    	public String home() {
    		return "home";
    	}
    	
    }


    5. home.html 설계

    home.html 설계
    src/main/resuorces -> templates -> home.html 생성

    서버가 연결되는지 확인할 정도로만 간단히 꾸미기

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>springA</title>
    </head>
    <body>
    	<h1>[ 🐰🐭🐼 springA 🐼🐭🐰 ]</h1>
    	
    	<p><a href="">회원가입</a></p>
    	<p><a href="">로그인</a></p>
    	<p><a href="">로그아웃</a></p>
    	<p><a href="">개인정보수정</a></p>
    	<p><a href="">게시판</a></p>
    	
    </body>
    </html>


    6. 서버 연동 확인

    springA 서버 켜기

    오류 발생

    • Using generated security password: ****

    이번 프로젝트에서 최종 설계 목표가 util기능과 security 기능을 사용해 보는것이었음
    거기서 build.gradle 에서 Dependency 를 확인해보면

    Lombok
    MyBatis Framework
    ORacle Driver
    Spring Boot Devtools
    Spring Security
    Spring Web
    Thymeleaf
    의 Dependency가 모두 활성화 되어 있음
    여기서 현재 서버가 구동되는 것을 확인하기 위한 Dependency만 켜고 나머지는 일단 주석처리

    그래도 Using generated security password: 콘솔이 없어지지 않는다 해결방법 더 찾아봐야 할 것 같다...

    일단 해결 못한채로 콘솔에서 알려주는 비밀번호로 접속하기

    서버 구동 확인 완료

    profile
    個人的な開発日誌記録用

    0개의 댓글