Fragment를 해본 후 이 메뉴를 그대로 사용해서 로그인과 회원가입 기능을 만들어보잔 생각을 했고 일단 먼저 Spring Boot로 간단하게 REST API 만들겠습니다.
프로퍼티스 세팅은 이 포스팅을 참고하세요.
https://jisaydeveloper.tistory.com/31
[Spring Boot] 환자 관리 프로그램 - 설정 (1)
게시판 연습할겸 환자 관리 프로그램을 만들어 보겠습니다. dependencies는 위의 네개를 추가합니다. application.properties spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mariadb://localh
jisaydeveloper.tistory.com
의존성은 Spring Web, Spring Data JPA, MariaDB Driver, Lombok 정도만 하면 됩니다.
User - Entity
package com.example.restfulapi.entity;
import com.example.restfulapi.dto.UserDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {
@Id
private String id;
private String password;
private String name;
private String birth;
public UserDTO toUserDTO() {
return UserDTO.builder()
.id(this.id)
.password(this.password)
.name(this.name)
.birth(this.birth)
.build();
}
}
UserDTO
package com.example.restfulapi.dto;
import com.example.restfulapi.entity.User;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class UserDTO {
private String id;
private String password;
private String name;
private String birth;
public User toEntity(){
return User.builder()
.id(this.id)
.password(this.password)
.name(this.name)
.birth(this.birth)
.build();
}
}
UserRepository
package com.example.restfulapi.repository;
import com.example.restfulapi.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User,String> {
}
UserService
package com.example.restfulapi.service;
import com.example.restfulapi.dto.UserDTO;
import com.example.restfulapi.entity.User;
import com.example.restfulapi.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class UserService {
final UserRepository userRepository;
public UserDTO saveUser(UserDTO userDTO){
User entityuser = userDTO.toEntity();
System.out.println(entityuser);
userRepository.save(entityuser);
return userDTO;
}
public Object validateUser(UserDTO userDTO) {
User user = userRepository.findById(userDTO.getId()).orElse(null);
if (user == null) {
return "아이디 또는 비밀번호가 맞지 않습니다.";
}
if(user.getId().equals(userDTO.getId()) && user.getPassword().equals(userDTO.getPassword())){
return user.toUserDTO();
}else {
return "아이디 또는 비밀번호가 맞지 않습니다.";
}
}
}
ServerController
package com.example.restfulapi.controller;
import com.example.restfulapi.dto.UserDTO;
import com.example.restfulapi.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
public class ServerController {
final UserService userService;
@PostMapping("/user/join")
public ResponseEntity<String> joinUser(@RequestBody UserDTO userDTO){
UserDTO response = userService.saveUser(userDTO);
return ResponseEntity.status(HttpStatus.OK).body(response.getId() + "님 회원가입 성공했습니다.");
}
@PostMapping("/user/valid")
public ResponseEntity<String> validateUser(@RequestBody UserDTO userDTO){
Object response = userService.validateUser(userDTO);
if(response instanceof String){
return ResponseEntity.status(HttpStatus.NOT_FOUND).body((String)response);
}else if(response instanceof UserDTO){
UserDTO dto = (UserDTO) response;
return ResponseEntity.status(HttpStatus.OK).body(dto.getId() + "님 환영합니다.");
}
return null;
}
}
일단 로그인과 회원가입만 구현했습니다. 추후 수정, 삭제도 만들겠습니다.
이제 서버를 만들었으니 안드로이드 스튜디오 설정하겠습니다.
https://jisaydeveloper.tistory.com/54
[Android Studio] 첫 안드로이드 앱 개발 시작해보기 - Fragment (9)
쇼핑몰 앱을 보면 화면 하단에 홈,마이페이지,장바구니 등 이런 메뉴가 구성돼있는 걸 본적 있을 겁니다. 이런 UI구성을 하는데 안드로이드에서 Fragment를 사용해서 액티비티 내에서 여러 프라그
jisaydeveloper.tistory.com
이 프로젝트에 fragment2를 회원가입으로 사용하겠습니다.
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
</trust-anchors>
</base-config>
</network-security-config>
res/xml 폴더에 만듭니다.
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" /> //인터넷 접속 허용
android:networkSecurityConfig="@xml/network_security_config"
<application>안에 위 코드를 넣어야 합니다. 로컬 서버에 접속하는 걸 안드로이드 스튜디오에서 막아놨기 때문에 http 접속할 수 있게 합니다.
build.gradle
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
서버 통신을 하기위한 retrofit과 parsing을 위한 gson을 의존성 추가 합니다.
'Android Studio' 카테고리의 다른 글
| [Android Studio] Android Studio + Spring Boot + mariaDB ( 로그인 ) (3) (0) | 2023.11.06 |
|---|---|
| [Android Studio] Android Studio + Spring Boot + mariaDB ( 회원가입 ) (2) (0) | 2023.11.06 |
| [Android Studio] 첫 안드로이드 앱 개발 시작해보기 - Fragment (9) (0) | 2023.11.05 |
| [Android Studio] 첫 안드로이드 앱 개발 시작해보기 - RecyclerView (8) (1) | 2023.11.03 |
| [Android Studio] 첫 안드로이드 앱 개발 시작해보기 - WebView, Navigation Menu (7) (1) | 2023.11.02 |