프로젝트/SUFY

[도착 알리미 SUFY] 1. 지하철 도착 알리미 웹 개발 준비

kim-dev 2024. 2. 5. 20:29
반응형

불과 어제 Kimstagram 프로젝트를 마무리지었다.
그런데... 쉴 시간이 어디 있어? 바로 다음 프로젝트 준비!!

이번에 내가 생각한 프로젝트는 Subway notiFy라고 해서, 내가 타고 있는 지하철과 목적 지하철 역을 입력해두면,
그 역에 다다르면 (전역을 출발하면 ?) 카카오톡으로 알림을 보내주는 웹 페이지이다.
 
스프링부트 내부의 기능들만 사용하는 게 아니라, 외부 기업들이 제공하고 있는 공공 API를 사용하는 법도 좀 공부하고 싶어서 이러한 프로젝트를 고안해 냈다.
사실 프로젝트 아이디어는 몇 가지 더 있었는데...
현 시점에서 학습에 가장 도움될 만한 프로젝트로는 이게 제일 좋았던 것 같다.
 
 

그런데 이런 과정을 왜 앱으로 안 만들고 웹으로 만드는 거임?

이렇게 물으면 할 말이 없는 게... 그냥 앱은 내가 못 만들어서... ㅋㅋㅋㅋ
그런데 뭐 웹으로 만들어도 목적만 달성할 수 있다면 충분하지 않나?? 
앱을 만들든 뭘 하든 일단 웹으로 만들고 나면 그냥 그 웹을 앱에서 띄우기만 하면 되니까...ㅋㅋㅋ


https://start.spring.io/
Kimstagram의 시작에서도 적어 놓았듯이, 위 주소를 통해 스프링부트 프로젝트는 굉장히 쉽게 시작할 수 있다.
 
아래는 내가 사용할 프로젝트의 build.gradle이다.

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.7.4'
	id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.kimdev'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '8'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	compileOnly("org.springframework.boot:spring-boot-devtools")
	runtimeOnly 'mysql:mysql-connector-java'

	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'

	// Spring Security, JWT
	implementation 'org.springframework.boot:spring-boot-starter-security'
	testImplementation 'org.springframework.security:spring-security-test'
	implementation "com.auth0:java-jwt:3.19.2"

	// jsp 처리
	implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
	implementation 'javax.servlet:jstl'

	// OAuth2
	implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
}

tasks.named('test') {
	useJUnitPlatform()
}

말은 뭐 거창하게 써 놨지만, 아마 build.gradle 자체는 Kimstagram 때와 거의 똑같다.

  • Java 버전: 8
  • Spring Web
  • MySQL
  • Spring Security
  • Etc...

이외에도 앞으로 프로젝트를 진행하면서 필요한 의존성은 추가해나갈 예정이다.