https://youtube.com/playlist?list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm
Springboot - 나만의 블로그 만들기
[스프링부트로 인스타그램 클론코딩] https://www.easyupclass.com/course/218/about
www.youtube.com
이번 프로젝트는 유튜브채널 '메타코딩' 님의 나만의 블로그 만들기 강의를 듣고
클론 코딩한 것을 토대로 복습한 후, 차후 커스텀 및 다른 기술 스택을 경험해보고자 한다.
이미 만든 코드는 Github-link 이 쪽에서 확인 가능하다.
공부할 주제:
Github 코드 보기
1. 프로젝트 생성
프로젝트 이름은 Myblog
자바 11, JDK 11 버전을 사용하였으며, 디펜던시는 차후에 더 추가한다.
2. build.gradle 설정
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.0'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'com.coon'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
// https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper
implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-jasper', version: '9.0.69'
// https://mvnrepository.com/artifact/org.springframework.security/spring-security-taglibs
implementation group: 'org.springframework.security', name: 'spring-security-taglibs', version: '5.7.5'
// https://mvnrepository.com/artifact/javax.servlet/jstl
implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
}
tasks.named('test') {
useJUnitPlatform()
}
build.gradle
spring-data-jpa(ORM), oauth2-client(OAuth), security(Session),
web(브라우저), lombok(VO), devtools(앱실행), mariadb-java-client(DB서버)을 추가하였고,
추가적인 tomcat-embed-jasper(톰캣 외부실행), spring-security-tablibs(권한), jstl(jsp에서 로직내장) 은
maven repository를 통해 추가하였다.
3. DB 생성
나는 AWS RDS에 mariadb를 설치하여 dbeaver를 통해 사용하는데 이것과 관련된 자세한 과정은 차후에 기록하겠다.
DB서버는 어떤것을 사용해도 상관없으나 각각의 Query문법을 잘 숙지해야 한다.


1. CLI나 GUI를 통해 database를 생성한다.
2. user를 생성한 다음 user에게 권한을 부여한다.
4. application.yml 설정
server:
port: 포트번호
servlet:
context-path: /
encoding:
charset: UTF-8
enabled: true
force: true
spring:
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://<본인DB주소(로컬은 localhost)>/<database이름>?serverTimezone=Asia/Seoul
username: DB아이디
password: DB비밀번호
devtools:
remote:
restart:
enabled: true
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
jpa:
open-in-view: true
hibernate:
ddl-auto: update
naming:
# Entity와 테이블의 컬럼명 컨밴션 설정
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false # jpa의 기본적인 numbering 전략 on/off
show-sql: false # 콘솔에 쿼리 표시
properties:
hibernate.format_sql: true
jackson:
serialization:
fail-on-empty-beans: false
application.yml
기본적으로 application.properties 파일명으로 resources 폴더 안에 생성된다.
properties문법으로 쓰면 아래와 같이 코드가 지저분해지기 때문에 나는 application.yml로 Refactoring하여 사용하겠다.
spring.datasource.hikari.jdbc-url=jdbc:oracle:thin:@IP:Port/orcl
spring.datasource.hikari.username=아이디
spring.datasource.hikari.password=비밀번호
application.properties
5. 프로젝트 실행
설정이 마무리 되었으면 프로젝트를 실행해준다.
이 때 DB관련 에러가 없다면 성공이 잘될 것이다.
만약 에러가 난다면 DB연결과 관련해서 코드를 잘 살펴보자.
이제 주소창에 localhost:포트번호/ 적고 이동하면 자동으로 로그인페이지로 갈 것이다.
이 것은 Spring Security가 dependency에 추가되어있기 때문에 security가 우리의 주소를 가로챈 것이다.
security적용전이니 이것이 불편하다면 security dependency를 주석처리해 놓는다.
가려던 주소로 이동하려면 아이디는 user, 비밀번호는 콘솔창에 뜬 코드를 입력하면 된다.
이러한 화면이 뜬다면 정상적으로 해당 주소로 이동된 것이다.
자 이제 차근차근 프로젝트를 구축해보자!!
'개인 프로젝트 > 블로그 만들기' 카테고리의 다른 글
나의 블로그 만들기 프로젝트 (6일차) - 글쓰기 완료 (0) | 2023.04.05 |
---|---|
나의 블로그 만들기 프로젝트 (5일차) - 로그인 처리 (0) | 2023.04.02 |
나의 블로그 만들기 프로젝트 (4일차) - 회원가입 처리 (0) | 2023.04.01 |
나의 블로그 만들기 프로젝트 (3일차) - index 페이지 로딩 (0) | 2023.03.31 |
나의 블로그 만들기 프로젝트 (2일차) - Entity 만들기 (0) | 2023.03.30 |