Frontend/Dart&Flutter
[단기 스터디] 2일차
shin0112
2024. 3. 14. 22:16
0. 들어가며
어제 이어서 springboot랑 flutter랑 연동해 볼 예정이다.
책에서는 그냥 jar 파일 다운받아서 사용해보라고 하는데, 나는 백엔드 개발을 할 예정이니까 내부적으로도 어떻게 돌아가야 하는지 알아야 될 것 같아서 springboot로 직접 코딩했다.
1. SpringBoot
1.1. 코딩하기
딱히 뭔가를 만들어 보려는 건 아니고 springboot랑 flutter가 잘 연동되는지 확인하기 위해서 간단한 user 기능만 작성할 예정이다.
- user 정보 입력하기
- user 정보 찾기
귀찮아서 dto도 안 만들었다..
순서대로 User, UserRepository, UserService, UserController다.
더보기
@Entity
@Getter
@NoArgsConstructor
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
Long userId;
@Column
String name;
@Column
Long age;
@Column
String comment;
public User(String name, Long age, String comment) {
this.name = name;
this.age = age;
this.comment = comment;
}
}
@RepositoryRestResource
public interface UserRepository extends JpaRepository<User, Long> {
}
@Service
@RequiredArgsConstructor
public class UserService {
private final UserRepository userRepository;
public ApiResponse<User> saveUserInfo(User user) {
User save = userRepository.save(user);
return ApiResponse.success(SuccessMessage.UPLOAD_USER_SUCCESS, save);
}
public ApiResponse<User> findUserInfo(Long userId) {
User user = userRepository.findById(userId).orElseThrow(() -> new NotFoundException(ErrorMessage.NOT_EXIST_USER));
return ApiResponse.success(SuccessMessage.GET_USER_SUCCESS, user);
}
}
@RestController
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
@PostMapping("/users")
ApiResponse<User> saveUserInfo(User user) {
return userService.saveUserInfo(user);
}
@GetMapping("/users/{userId}")
ApiResponse<User> findUserInfo(Long userId) {
return userService.findUserInfo(userId);
}
}
오잉 값이 안들어갔다. controller에 @RequestBody랑 @PathVariable을 안 넣어줌..
@PostMapping("/users")
ApiResponse<User> saveUserInfo(@RequestBody User user) {
return userService.saveUserInfo(user);
}
@GetMapping("/users/{userId}")
ApiResponse<User> findUserInfo(@PathVariable Long userId) {
return userService.findUserInfo(userId);
}
성공 ^p^
1.2. 빌드하기
spring boot 빌드 과정은 다음과 같다.
- 프로젝트 경로로 가기
- gradlew build 명령어 사용
- plain.jar랑 그냥.jar가 나오는데, plain 버전은 의존성 없는 클래스랑 리소스 파일만 포함하는 거라서 상관 안해도 된다.
- cd build/libs 로 이동
- java -jar '프로젝트 이름.jar'
이제 flutter 만들고 배포하는 걸 해보고 싶었는데, 시간이 촉박하고 aws가 더 급해서 기회가 되면 하려고 한다.
원래 dart&flutter 공부하려고 했는데, 결국 한 건 springboot 배포..