ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [단기 스터디] 2일차
    Frontend/Dart&Flutter 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 빌드 과정은 다음과 같다.

    1. 프로젝트 경로로 가기
    2. gradlew build 명령어 사용
      • plain.jar랑 그냥.jar가 나오는데, plain 버전은 의존성 없는 클래스랑 리소스 파일만 포함하는 거라서 상관 안해도 된다.
    3. cd build/libs 로 이동
    4. java -jar '프로젝트 이름.jar'

    jar로 실행한 다음 postman으로 실행 성공

     

    이제 flutter 만들고 배포하는 걸 해보고 싶었는데, 시간이 촉박하고 aws가 더 급해서 기회가 되면 하려고 한다.

    원래 dart&flutter 공부하려고 했는데, 결국 한 건 springboot 배포..

    'Frontend > Dart&Flutter' 카테고리의 다른 글

    [단기 스터디] 1일차  (0) 2024.03.12
    [단기 스터디] orientation  (0) 2024.03.11
Designed by Tistory.