Quickstarters
Feature Overview
How to Build a Backend for Java?
38 분
소개 이 튜토리얼에서는 java용 백엔드를 back4app을 사용하여 구축하는 방법을 배웁니다 java는 웹 개발 및 서버 측 애플리케이션 개발에 널리 사용되는 다재다능한 객체 지향 프로그래밍 언어입니다 back4app을 java 프로젝트에 통합함으로써 안전한 데이터베이스 관리, 클라우드 코드 기능, restful 웹 서비스, graphql api, 사용자 인증 및 실시간 쿼리와 같은 필수 백엔드 기능을 활용할 수 있으며, 인프라 오버헤드를 최소화할 수 있습니다 이 접근 방식은 java 백엔드 개발 을 가속화하고 확장성을 보장하여 수동 서버 구성의 복잡성에서 벗어날 수 있게 해줍니다 데이터 구조 설정부터 클라우드 작업으로 작업 예약 및 웹훅 통합에 이르기까지 이러한 기술을 적용하는 실습 경험을 얻을 수 있습니다 이 기초를 통해 작은 웹 앱에서 대규모 java 애플리케이션 까지 쉽게 구축할 수 있습니다 이 가이드를 완료한 후에는 back4app의 강력한 백엔드 인프라를 사용하여 웹 애플리케이션 을 생성하거나 확장할 준비가 될 것입니다 데이터 작업을 수행하고, 접근 제어를 구현하며, 복잡한 비즈니스 로직을 처리하기 위해 parse java sdk 에 연결하는 방법을 알게 될 것입니다 이 튜토리얼은 이 플랫폼에서 계속 구축하는 데 필요한 기술을 제공하며, 새로운 기능을 추가하거나 프로덕션 준비를 최적화하는 데 도움이 됩니다 전제 조건 이 튜토리얼을 완료하려면 다음이 필요합니다 back4app 계정과 새로운 back4app 프로젝트 back4app 시작하기 https //www back4app com/docs/get started/new parse app 계정이 없으면 무료로 가입하세요 java 개발 환경 다음과 같은 java 백엔드 프레임워크 또는 java ide(예 intellij, eclipse 또는 java가 포함된 vs code)로 설정할 수 있습니다 java development kit (jdk) 이 설치되어 있는지 확인하세요 최신 jdk 다운로드 https //www oracle com/java/technologies/downloads/ java 프로그래밍 언어에 대한 기본 지식 객체 지향 프로그래밍 개념, 데이터 구조 , 및 restful 웹 서비스 에 대한 친숙함이 도움이 됩니다 java 공식 문서 https //docs oracle com/en/java/ 의존성 관리를 위한 maven 또는 gradle (선택 사항) 빌드 도구를 사용하여 parse java sdk를 통합할 계획이라면 maven 또는 gradle이 설치되어 있어야 합니다 maven 문서 https //maven apache org/ | gradle 문서 https //gradle org/docs/ 시작하기 전에 이러한 모든 전제 조건이 준비되어 있는지 확인하세요 back4app 프로젝트가 준비되고 java 환경이 구성되어 있으면 이 튜토리얼이 더 원활해질 것입니다 1단계 – back4app에서 새 프로젝트 만들기 및 연결하기 새 프로젝트 만들기 back4app에서 java 백엔드 개발 의 첫 번째 단계는 새 프로젝트를 만드는 것입니다 아직 만들지 않았다면 다음 단계를 따르세요 log in to your back4app account click the “new app” button in your back4app dashboard give your app a name (e g , “java backend tutorial”) once the project is created, you will see it listed in your back4app dashboard this project will serve as the foundation for all backend configurations discussed in this tutorial connect the parse sdk back4app relies on the parse platform to manage your data, provide real time updates, handle user authentication, and more for java projects, you can integrate the parse java sdk https //github com/parse community/parse sdk java retrieve your parse keys in your back4app dashboard, navigate to app settings or security & keys to find your application id and client key you will also see the parse server url (often https //parseapi back4app com ) add the parse java sdk to your project if you’re using maven, add the following to your pom xml \<dependency> \<groupid>com parse\</ >groupid> \<artifactid>parse\</ >artifactid> \<version>1 26 0\</ >version> \</dependency> gradle을 선호하는 경우, build gradle 추가하세요 dependencies { implementation 'com parse\ parse 1 26 0' } parse 초기화 를 java 코드에서 수행하세요 (예 메인 클래스 또는 구성 클래스에서) import com parse parse; public class main { public static void main(string\[] args) { parse initialize(new parse configuration builder("your app context") applicationid("your application id") clientkey("your client key") server("https //parseapi back4app com/") build() ); system out println("parse initialized successfully!"); // continue with your app logic } } "your app context" 을 실제 컨텍스트로 교체하세요 (있는 경우) 또는 필요하지 않으면 null 을 전달하세요 이 코드는 웹 앱 또는 서버 측 java 애플리케이션이 back4app과 안전하게 통신할 수 있도록 보장합니다 2단계 – 데이터베이스 설정 back4app은 호스팅되고 확장 가능한 데이터베이스를 제공하며, 당신의 java programming language 앱과 원활하게 통합됩니다 back4app 대시보드에서 또는 즉석에서 클래스, 열 및 관계를 생성할 수 있습니다 1 데이터 모델 생성 back4app 데이터베이스에서 클래스(테이블)와 그 열을 정의할 수 있습니다 예를 들어, todo 클래스를 생성하려면 “데이터베이스” 섹션으로 이동 하여 back4app 대시보드에서 “새 클래스 만들기” 클릭 하고 이름을 todo 로 지정합니다 관련 열 추가 (예 title 는 string, iscompleted 는 boolean) 2 ai 에이전트를 사용한 데이터 모델 생성 back4app의 ai 에이전트는 자동으로 스키마를 구축할 수 있습니다 대시보드에서 ai 에이전트 열기 데이터 설명하기 (예 “제목과 iscompleted 필드가 있는 새 todo 클래스를 생성합니다 ”) ai 생성 스키마 검토 및 적용 3 파스 자바 sdk를 사용한 데이터 읽기 및 쓰기 아래는 데이터베이스에 데이터를 저장하고 쿼리하는 방법에 대한 간단한 예입니다 java import com parse parseobject; import com parse parsequery; import com parse parseexception; import com parse parsecloud; import java util list; public class todoservice { // create a new todo public void createtodoitem(string title, boolean iscompleted) { parseobject todo = new parseobject("todo"); todo put("title", title); todo put("iscompleted", iscompleted); try { todo save(); system out println("todo saved successfully with objectid " + todo getobjectid()); } catch (parseexception e) { system err println("error saving todo " + e getmessage()); } } // fetch all todos public void fetchtodos() { parsequery\<parseobject> query = parsequery getquery("todo"); try { list\<parseobject> results = query find(); system out println("fetched " + results size() + " todo items "); for (parseobject todo results) { system out println(" " + todo getstring("title")); } } catch (parseexception e) { system err println("error fetching todos " + e getmessage()); } } } 4 rest api를 사용한 데이터 읽기 및 쓰기 대안으로, rest 엔드포인트를 사용하세요 curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5 graphql api를 사용한 데이터 읽기 및 쓰기 back4app의 graphql 인터페이스 사용 mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6 실시간 쿼리 작업하기 (선택 사항) 웹 개발 시나리오에서 실시간 업데이트 를 위해, back4app은 실시간 쿼리를 지원합니다 대시보드에서 실시간 쿼리를 활성화하고, 사용 사례에 맞다면 java 애플리케이션에 통합하세요 (주로 실시간 웹 또는 모바일 앱에서 사용됨) 3단계 – acl 및 clp로 보안 적용하기 간략한 개요 acls (접근 제어 목록) 및 clps (클래스 수준 권한)은 누가 객체를 읽거나 쓸 수 있는지를 제어하여 데이터를 보호하는 데 도움을 줍니다 단계별 클래스 수준 권한 (clps) back4app 대시보드에서 데이터베이스 로 이동합니다 클래스를 선택합니다 (예 todo ) 그리고 클래스 수준 권한 을 엽니다 사용자 인증을 요구하거나 공개 접근을 제한하는 등의 읽기/쓰기 규칙을 구성합니다 접근 제어 목록 (acls) 코드에서 객체 수준 권한을 적용합니다 예를 들어 parseobject todo = new parseobject("todo"); todo put("title", "private task"); // grant owner read/write permission, remove public read/write todo setacl(new com parse parseacl(parseuser getcurrentuser())); try { todo save(); } catch (parseexception e) { e printstacktrace(); } 이것은 acl을 설정하여 현재 사용자만 객체를 읽거나 쓸 수 있도록 합니다 4단계 – 클라우드 코드 함수 작성 클라우드 코드의 필요성 클라우드 코드는 서버 측 로직을 추가하여 자바 백엔드 개발 워크플로우를 지원합니다 사용자 정의 함수, 트리거 및 검증을 작성할 수 있으며, 이는 back4app의 서버에서 수동 인프라 관리 없이 실행됩니다 이는 고급 비즈니스 로직, 데이터 변환 또는 외부 api를 안전하게 호출하는 데 이상적입니다 예제 함수 back4app cloud code 섹션에 main js 를 생성한 후, 함수를 정의합니다 parse cloud define("gettodocount", async (request) => { const query = new parse query("todo"); const count = await query count(); return { totaltodos count }; }); 배포 back4app cli 사용하기 b4a deploy 또는 대시보드를 통해 cloud code > functions 로 이동하여 함수를 붙여넣고 main js 에 클릭한 후 배포 합니다 클라우드 코드에서 npm 사용하기 필요한 경우 외부 npm 모듈을 설치하고 요구할 수 있습니다 예를 들어, 클라우드 코드에서 전문 작업을 처리하기 위해 node 라이브러리를 요구할 수 있습니다 이러한 모듈은 자바 코드와 독립적으로 실행되지만, 아래에 설명된 대로 자바 애플리케이션에서 호출할 수 있습니다 자바에서 클라우드 코드 호출하기 import com parse parsecloud; import java util hashmap; import java util map; public class cloudcodeexample { public void gettodocount() { try { map\<string, object> params = new hashmap<>(); map\<string, object> result = parsecloud callfunction("gettodocount", params); system out println("total todos " + result get("totaltodos")); } catch (exception e) { e printstacktrace(); } } } 5단계 – 인증 구성 사용자 인증 활성화 back4app의 parse user 클래스는 인증을 간소화합니다 비밀번호 해싱, 세션 토큰 및 안전한 저장소를 자동으로 관리합니다 java 코드 샘플 import com parse parseuser; import com parse parseexception; public class userservice { // sign up public void signupuser(string username, string password, string email) { parseuser user = new parseuser(); user setusername(username); user setpassword(password); user setemail(email); try { user signup(); system out println("user signed up successfully!"); } catch (parseexception e) { system err println("error signing up user " + e getmessage()); } } // log in public void loginuser(string username, string password) { try { parseuser user = parseuser login(username, password); system out println("user logged in " + user getusername()); } catch (parseexception e) { system err println("error logging in user " + e getmessage()); } } } 소셜 로그인 parse는 google , facebook , apple , 등과 통합할 수 있습니다 일반적으로 각 제공업체에 대해 추가 라이브러리를 설치하거나 어댑터를 사용한 다음, back4app 프로젝트에서 구성합니다 소셜 로그인 문서 https //www back4app com/docs/platform/sign in with apple 6단계 – 파일 저장 처리 파일 업로드 및 검색 back4app은 파일을 안전하게 자동 저장합니다 parsefile 을(를) java에서 사용하세요 import com parse parsefile; import com parse parseobject; import java nio file files; import java nio file paths; public class fileservice { public void uploadfile(string filepath) { try { byte\[] data = files readallbytes(paths get(filepath)); parsefile parsefile = new parsefile("uploadedfile", data); parsefile save(); // uploads file parseobject fileobject = new parseobject("myfile"); fileobject put("file", parsefile); fileobject save(); system out println("file uploaded " + parsefile geturl()); } catch (exception e) { e printstacktrace(); } } } 보안 고려사항 파일 업로드 권한을 parse server 설정에서 구성하여 인증된 사용자만 허용하거나 공개 업로드를 차단할 수 있습니다 7단계 – 이메일 확인 및 비밀번호 재설정 개요 안전한 웹 앱 , 사용자 이메일을 확인하고 비밀번호 재설정 옵션을 제공해야 합니다 back4app 대시보드 구성 이메일 설정으로 이동 당신의 back4app 대시보드에서 이메일 인증 활성화 및 템플릿 설정 비밀번호 재설정 활성화 사용자가 안전하게 계정을 복구할 수 있도록 코드 구현 try { parseuser requestpasswordreset("user\@example com"); system out println("password reset request sent!"); } catch (parseexception e) { system err println("error requesting password reset " + e getmessage()); } 8단계 – 클라우드 작업으로 작업 예약하기 클라우드 작업 개요 “ 클라우드 작업 ”를 사용하여 주기적인 데이터 정리 또는 자동화된 보고서와 같은 작업을 예약합니다 main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); // example remove todos older than 30 days const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); 배포한 후, background jobs 섹션에서 back4app 대시보드에 일정을 설정하세요 9단계 – 웹훅 통합 정의 및 구성 웹훅 은 특정 이벤트가 발생할 때 외부 시스템에 http 요청을 보낼 수 있게 해줍니다 예를 들어, todo 가 생성될 때마다 결제 게이트웨이나 분석 플랫폼에 데이터를 보낼 수 있습니다 앱의 대시보드로 이동 > 더보기 > 웹훅 외부 엔드포인트를 지정하여 웹훅 추가 어떤 이벤트가 웹훅을 트리거하는지 선택하세요 10단계 – back4app 관리 패널 탐색 찾는 방법 “ back4app 관리 패널 ”은 데이터 관리를 위한 코드 없는 인터페이스입니다 “ 앱 대시보드 > 더보기 > 관리 앱 ”에서 활성화하세요 기능 활성화되면 다음을 수행할 수 있습니다 기록을 직접 보기, 편집 또는 삭제 할 수 있습니다 다양한 팀 구성원에게 역할을 할당합니다 ui를 사용자 정의하고 기업 수준의 애플리케이션 개발 을 위한 데이터를 관리합니다 결론 이 가이드를 완료함으로써 java용 백엔드를 구축하는 방법 에 대해 다음과 같은 내용을 배웠습니다 확장 가능한 데이터베이스를 설정했습니다 실시간 쿼리를 구현했습니다 , restful 웹 서비스 , 및 데이터 접근을 위한 graphql 강력한 보안 조치를 통합했습니다 acl 및 clp와 함께 서버 측 논리를 위해 cloud code를 활용했습니다 이메일 인증 및 비밀번호 재설정을 통해 사용자 인증을 구성했습니다 웹 애플리케이션을 위한 파일을 저장하고 검색했습니다 데이터 정리를 위한 백그라운드 작업을 예약했습니다 타사 서비스 통합을 위한 웹훅을 연결했습니다 코드 없는 데이터 관리를 위한 관리 패널을 탐색했습니다 이제 java 백엔드 프레임워크 를 확장하여 프로덕션 부하를 처리하고, 외부 api를 통합하며, 고급 기능을 구축할 수 있는 준비가 되었습니다 이 견고한 기반을 통해 귀하의 java 프로그래밍 언어 프로젝트는 웹 개발 및 그 이상에서 새로운 차원에 도달할 수 있습니다 다음 단계 백엔드 개선 을 위해 엔터프라이즈 수준의 자바 백엔드 개발 , 복잡한 로직과 도메인 특화 데이터 구조를 추가하세요 고급 기능 통합 전문 인증 흐름, 역할 기반 접근 또는 서드파티 rest api와 같은 공식 back4app 문서 참조 성능 조정, 로깅 및 분석에 대한 이해를 깊이기 위해 더 많은 튜토리얼 탐색 채팅 시스템, iot 서비스 또는 지리 위치 앱 구축에 대해 back4app의 실시간 기능을 더욱 활용하세요