본문 바로가기

전체 글

(109)
[REST API 실습] 2. AWS RDS로 MariaDB 생성해서 워크벤치에 연결하기 본 포스팅은 스터디 모임의 발표 참고자료로 사용하기 위해 작성되었습니다. 목차 1) Springboot 프로젝트 생성하고 RestController 작성 후 실행하기(Gradle) 2) AWS RDS로 MariaDB 생성해서 워크벤치에 연결하기 3) JPA(Hibernate) + HikariCP로 스프링부트 프로젝트와 RDS MariaDB 연동 후 CRUD 메소드 구현 4) Springboot 프로젝트 AWS EC2 인스턴스에 배포 5) 안드로이드 앱에서 Retrofit을 사용해서 REST API와 통신하기(CRUD 구현) 참고사항 1) 부가적인 설명은 최대한 배제하는 대신 모든 과정을 여과 없이 스크린샷으로 남겼습니다. 그래서 대부분의 스크린샷이 창 전체를 포함합니다. 2) 이론적인 이해가 필요한 부분..
[REST API 실습] 1. Springboot 프로젝트 생성하고 RestController 작성 후 실행하기(Gradle) 본 포스팅은 스터디 모임의 발표 참고자료로 사용하기 위해 작성되었습니다. 목차 1) Springboot 프로젝트 생성하고 RestController 작성 후 실행하기(Gradle) 2) AWS RDS로 MariaDB 생성해서 워크벤치에 연결하기 3) JPA(Hibernate) + HikariCP로 스프링부트 프로젝트와 RDS MariaDB 연동 후 CRUD 메소드 구현 4) Springboot 프로젝트 AWS EC2 인스턴스에 배포 5) 안드로이드 앱에서 Retrofit을 사용해서 REST API와 통신하기(CRUD 구현) 참고사항 1) 부가적인 설명은 최대한 배제하는 대신 모든 과정을 여과 없이 스크린샷으로 남겼습니다. 그래서 대부분의 스크린샷이 창 전체를 포함합니다. 2) 이론적인 이해가 필요한 부분..
안드로이드 스튜디오의 테스트 1) 로컬 단위 테스트(/src/test/java) - JVM에서 실행되는 로컬 단위 테스트 - Android 프레임워크에 대한 종속성이 없거나 모의 객체를 생성할 수 있는 경우에 사용 - final 한정자가 삭제된 수정된 버전의 andorid.jar에 대해 실행 - Mockito와 같은 모의 라이브러리 사용 가능 2) 계측 테스트(/src/androidTest/java) - 하드웨어 기기 혹은 에뮬레이터에서 실행되는 계측 테스트 - 사용자 상호작용을 자동화하는 테스트를 작성하거나 로컬 단위테스트가 불가능한 경우 사용 - Instrumentation API에 액세스 가능 - 앱의 Context와 같은 정보에 대한 액세스 권한 제공 3) 의존성 - 아래와 같이 의존성을 추가해야 한다.(프로젝트 생성시 기본..
안드로이드 액티비티의 상태 및 생명주기 액티비티의 상태 1) Created: 액티비티 생성 2) Started(visible): 액티비티 시작 3) Resumed(visible): 액티비티 Focus 4) Pause: 액티비티 일시 정지(다른 액티비티 Focus) 5) Stopped: 액티비티 정지(다른 액티비티에 의해 완전히 가려져서 hidden상태가 될 때) 6) Destroyed: 액티비티 제거 안드로이드 액티비티의 생명주기 1) oncreate(): 액티비티 생성 이전에 1회 호출 2) onStart(): 액티비티 생성 후 출력되기 전에 호출(Stopped 상태에서 다시 출력될 때도 호출) 3) onResume(): 액티비티 출력 후 Focus시 호출(Pause 상태에서 다시 Focus시에도 호출) 4) onRestart(): 액티비티..
직렬화(Serialize)란? 직렬화(Serialize) - 객체 혹은 데이터를 외부에서 사용 가능하도록 바이트 형태로 변환하는 기술 - 반대되는 작업인 역직렬화(Deserialize)까지 아울러서 통칭하는 단어 - 시스템적으로 JVM의 메모리에 상주된 객체 데이터를 바이트 형태로 변환하거나 그 반대로 바이트 형태의 데이터를 JVM에 상주시키는 형태 - 자바의 기본 타입 혹은 java.io.Serializable 인터페이스를 상속받은 객체는 직렬화 가능 - 안드로이드에서 액티비티간 데이터 전송시 Intent의 putExtra 메소드를 사용하는데 객체를 전송할 때는 반드시 Serializable 인터페이스를 상속 받아야 한다. *참조 http://woowabros.github.io/experience/2017/10/17/java-ser..
제네릭이란? 1. 제네릭(Generic) - 클래스 내부에서 사용할 데이터의 타입을 외부에서 지정하는 기법으로 JDK 1.5에서 도입되었다. - 타입 안정성을 제공한다. - 객체의 타입 체크와 형변환이 생략 가능하며 컬렉션 클래스 사용시 매우 유용하다. - 와일드카드를 사용해서 특정 객체의 부모 혹은 자손의 타입으로 제한할 수 있다.(는 의 축약형) - 복수의 제네릭을 함께 사용할 수 있다. - 기본형 타입에는 사용이 불가능하다(참조형 타입, 즉 객체에만 사용 가능) - 타입이 추론 가능한 경우에는 생략 가능하다. *참조 https://yaboong.github.io/java/2019/01/19/java-generics-1/ https://onsil-thegreenhouse.github.io/programming/j..
[Android] RecyclerView 개요 및 예제, 성능 관리 팁 본 포스팅은 스터디 모임의 발표 참고자료로 사용하기 위해 작성되었습니다. RecyclerView 1. 개요 - Android 5.0에서 처음 소개되었으며 기존의 ListView를 보완한 고급 위젯 - Data Set을 아이템 단위로 ViewGroup을 구성 후 스크롤 가능한 리스트로 표시 - SupportLibrary에 포함되어 AndroidVersion 7 이상에서 사용 가능 2. 구현 원리 - RecyclerView는 LayoutManager를 통해서 View 표현 방식을 정의 - Adapter에서 Data의 ViewHolder 정의에 따라 UI를 선택해서 표현 - ViewHolder 패턴 적용을 통해 View의 재사용 가능(findViewByID 호출 저감) 3. Layout - LinearLayo..
[Kotlin 요약 정리] 11. 고차 함수와 인라인 함수 11. 고차 함수와 인라인 함수 1) 고차함수 - 매개변수로 함수를 전달받거나 함수를 반환하는 함수 - 매개변수가 함수 1개일 경우 괄호() 를 생략하고 예약어 형태로 사용 가능 fun function1(func: (Int) -> Int, num: Int) = func(num) fun function2(func: (Int) -> Int) = func(10) fun pr(func: (Any) -> Any) = println(func(10)) fun main() { val a = function1({ it * 10 }, 10) val b = function2( { it * 10} ) val c = function2 { it * 10} println("a: $a / b: $b / c: $c") pr { 10 ..