중복 코드를 제거하고 API 처리와 컨트롤러의 결합을 제거하기 위해 사용합니다. Interface인 Service를 만들고 Service를 상속받는 Component를 만들고 사용하면 됩니다. 서비스 인터페이스 interface CustomerService { fun getCustomer(id: Int): Customer? fun createCustomer(customer: Customer) fun deleteCustomer(id: Int) fun updateCustomer(id: Int, customer: Customer) fun searchCustomer(nameFilter: String): List } RESTful API에서 동작할 작업들을 담은 interface를 만들었습니다. 구현 생성 @Co..
@PathVariable URL로 들어오는 값을 얻을 때 사용합니다. @GetMapping(value = ["/customer/{id}"]) fun getCustomer(@PathVariable id: Int) : ResponseEntity { ... } 위와 같이 value 값으로 {id}를 얻어오고자 할 때 PathVariable을 사용합니다. 스프링이 컨트롤러를 자동 설정할 때 어노테이션을 인식해서 URL로 전달되는 값을 함수에 필요한 값으로 매핑하고 지정된 데이터 타입으로 변환합니다. 추가 설정 없이도 경로 변수를 함수 안으로 쉽게 매핑할 수 있는 강력한 기능입니다. @RequestParam 꼭 명시해야 되는지와 기본 값을 설정할 수 있습니다. @GetMapping(value = ["/custom..
Spring Boot에서 RESTful API를 하기 위해서 RestController가 필요합니다. Controller RESTful API로 오는 각각의 요청은 주로 무상태 메시지입니다. 리소스 요청 리소스 업데이트 리소스 생성 리소스 삭제 Spring에서 웹 요청은 컨트롤러가 처리합니다. 컨트롤러는 클라이언트의 요청을 처리하고 응답을 보내는 역할을 하는 특수 컴포넌트입니다. 컨트롤러는 다양한 통신 프로토콜에 사용할 수 있지만 RestController는 RESTful API 통신을 위한 것입니다. RestController는 컨트롤러가 요청을 처리하고 body를 출력하도록 지정합니다.

CircleCI를 사용하면서 발생했던 오류 해결 방법을 적어놓은 게시글입니다. Gradlew: Permission denied 오류 발생 시 ( 깃허브 gitignore 재 설정 때문에 git rm -r --cached . 사용 시에 발생하거나 권한 설정 안 하면 발생 ) git update-index --chmod=+x gradlew 또는 - run: name: chmod permissions command: chmod +x ./gradlew dependencies: override: -chmod +x gradlew org.gradle.wrapper.GradleWrapperMain 오류 발생 시 git add -f gradle/wrapper/gradle-wrapper.jar 입력 후 gradle wra..

라이브러리 만들기 라이브러리 생성 프로젝트 하나를 생성합니다. app > New > Module을 클릭합니다. Android Library를 선택합니다. 라이브러리의 이름을 짓고 생성합니다. 라이브러리 코드 작성 그리고 라이브러리 폴더 안에 ToastClass라는 파일을 생성 후 아래와 같이 코드를 작성하였습니다. 간단하게 Toast 메시지를 띄어주는 코드입니다. 프로젝트에 라이브러리 적용 안드로이드 프로젝트에서 만든 라이브러리를 적용해 테스트를 해보겠습니다. File > Project Structure을 클릭합니다. Dependencies > app > + 를 클릭합니다. Module Dependency를 클릭하고 아래와 같이 라이브러리를 추가합니다. Apply를 눌러 Sync 하고 OK를 누르면 됩니..
안드로이드에서 서버로 사진 관련 데이터를 보낼 때 사진 uri로 보내면 휴대폰에서 사진을 지웠을 경우 사진을 불러올 수 없게 됩니다. 해결 방법은 이미지를 bimap 처리를 하고 인코딩하여 서버로 보내고 받아올 땐 디코딩하여 이미지로 바꾸면 됩니다. private fun bitmapToString(bitmap: Bitmap): String { val byteArrayOutputStream = ByteArrayOutputStream() bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream) val byteArray = byteArrayOutputStream.toByteArray() return Base64.encodeToString(b..

Activity 1. OnCreate() Activity가 실행되고 호출됩니다. Activity에서 필요한 리소스를 초기화하는 곳입니다. 2. OnStart() 사용자에게 Activity가 보이도록 해줍니다. 보통 BroadCastReceiver를 등록할 때 사용합니다. 3. OnResume() Background 상태에서 Foreground가 되면 호출되거나 다른 Activity에서 돌아오면 호출됩니다. 카메라와 같이 화면을 가지고 있는 경우에만 사용할 수 있는 리소스를 초기화합니다. 4. OnPause() Background 상태가 되면 호출됩니다. ( 다른 Activity가 실행되면 현재 Acitivity도 OnPause를 호출합니다. ) OnReume()에서 초기화 해준 리소스를 해제해주는 곳입니..