전체글 61

안드로이드 레트로핏(Retrofit) (2)

1. API가 제공하는 JSON 형식 값을 토대로 data class를 작성 안드로이드 스튜디오의 플러그인 중 하나인 JSON To Kotlin Class 를 활용하자 2. API를 활용할 클래스를 작성 (예시: 네이버 검색 API) class NewsOpenApi { companion object { const val domain = "https://openapi.naver.com/v1/search/" // 도메인에는 API를 사용할 때 변하지 않는 주소 부분을 넣으면 된다 } } 3. 클래스 외부에 인터페이스 작성 interface NewsOpenService { // API에 따라 헤더에 정보를 추가해야할 때가 있는데 // 인터페이스 부분에 헤더 어노테이션으로 추가하면 된다 @Headers( "X-..

Android(Kotlin) 2021.09.17

안드로이드 레트로핏(Retrofit) (1)

레트로핏이란 안드로이드에서 데이터 통신을 가능하게 하는 라이브러리 데이터를 가져올 곳(웹사이트 or API)과 데이터의 형식을 필요로 한다 JSON : 속성-값 or 키-값 의 쌍으로 이루어진 데이터를 전달하기 위해 텍스트를 사용하는 개방형 표준 포맷 현재 데이터 통신용으로 가장 많이 사용되고 있고 구조 또한 간단하다 네트워크 관점에서 JSON은 HTTP와 같은 데이터 프로토콜에서 바디 영역에 정의된 데이터 통신을 위한 개방형 규격 JSON의 구조 1) JSON 객체는 중괄호로 시작과 끝을 나타낸다 { } 2) JSON 데이터는 "이름" : 값 의 형식으로 표현되며 여러개일 경우 ,(쉼표) 로 구분 이름은 반드시 따옴표로 감싸야 한다 3) JSON 배열은 대괄호로 시작과 끝을 나타낸다 [ ] JSON 오..

Android(Kotlin) 2021.07.29

HttpURLConnection

1. 안드로이드에서 네트워크 관련 작업은 백그라운드 처리를 원칙으로 하기 때문에 build.gradle 의 dependencies 에 코루틴 의존성을 추가한다 implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9' 추가 2. manifest 파일에서 인터넷 접근 권한을 추가 3. 참고해볼 코드 - url을 입력하면 해당 웹페이지 코드를 출력하는 예시 CoroutineScope(Dispatchers.IO).launch { try { //네트워크 관련 코드는 앱이 멈추는 치명적인 오류가 발생할 가능성이 높기 때문에 예외처리 꼭 하자 val url = URL(urlText) //입력받은 텍스트를 url로 캐스팅 val urlConnect..

Android(Kotlin) 2021.07.29

rest api 관련 읽어볼 사이트

안드로이드에서 Rest API 호출하기 :: Calvin's Memo (tistory.com) 안드로이드에서 Rest API 호출하기 최근의 안드로이드 앱들은 서버와의 연결이 필수적이다. 과거에는 성능 등의 문제로 Native Server가 쓰이는 경우가 많았지만, 현대에 들어서는 Restful Web API를 통해 서버와 교신을 하는 경우가 늘어 calvinjmkim.tistory.com 조대협의 블로그 :: 안드로이드에서 REST API 호출하기 (tistory.com) 안드로이드에서 REST API 호출하기 REST API를 이용하여, 날씨를 조회하는 간단한 애플리케이션 만들기 조대협 (http://bcho.tistor 네트워크를 통한 REST API 호출 방법을 알아보기 위해서, 간단하게, 위도와..

그 외 기술 2021.07.29

내가 보려고 쓰는 Java 기초 문법 정리

트랜드에 맞춰 Kotlin으로 개발언어를 바꿨지만 아직까지 유지보수를 위해 회사에서 Java를 많이 사용하더라 그래서 기초를 한번 다시 정리하기로 했다 필요하다고 생각되거나 놓친게 있으면 그때그때 추가할 생각 변수 선언 type a = something(type); type -> 자료형 a -> 변수명 something -> 변수를 초기화할 값 배열 int[] array1 = {1, 2, 3, 4, 5}; // [1, 2, 3, 4, 5] int[] array2 = new int[5]; array2[0] = 1; array2[1] = 2; array2[2] = 3; array2[3] = 4; array2[4] = 5; // [1, 2, 3, 4, 5] array1 -> 배열의 선언과 동시에 초기화 arr..

그 외 기술 2021.07.25

동기(Synchronous)와 비동기(Asynchronous)

동기 : 요청과 결과가 동시에 일어난다는 약속 마치 요청 후 결과가 바로 나와야한다는 것으로 해석될 수 있지만 그것이 아닌 한번 요청하면 결과가 나올때까지 기다려야한다는 것이다 "요청 -> 처리중 -> 결과" 한 사이클이 끝나야 다른 작업을 할 수 있음 예) 게임에서 아이템을 직접 제작할 때 로딩을 기다리는것 비동기 : 요청과 결과가 동시에 일어나지 않는다는 약속 요청 후 결과가 나오는데 시간이 걸린다는점때문에 동기방식보다 나쁘다라고 생각될 수 있지만 분명한 차이점이 있다 작업 사이클이 종료될 때까지 사용자가 기다려야하는 동기 방식과는 달리 비동기 방식의 경우 결과가 나올때까지 다른 작업을 하며 기다릴 수 있다는 것이다 예를 들어 A가 B에게 필요한 서류를 요청하는 "서류 요청 -> 요청받은 서류 수집 ..

그 외 기술 2021.07.23

안드로이드 액티비티와 프래그먼트 생명주기

Activity Lifecycle onCreate() : 액티비티가 생성되는 시기 onStart() : 생성된 액티비티가 화면에 보이기 시작하는 시기 onResume() : 액티비티가 실제로 실행됨 *실행 중을 나타내는 생명주기는 따로 존재하지않고 onResume이 호출되었다면 그 액티비티가 실행중인것 onPause() : 액티비티의 일부가 다른 액티비티에 의해 가려짐 *다른 액티비티가 투명하거나 작아서 뒤쪽 액티비티의 일부분이라도 보인다면 onPause 상태 onStop() : 다른 액티비티가 실행되어서 화면이 완전히 가려짐 onDestroy : 액티비티가 종료됨 *finish()나 뒤로가기가 실행되면 onPause와 onStop이 동시에 실행된 후 onDestroy가 호출되며 액티비티가 메모리에서 제..

Android(Kotlin) 2021.07.23

면접 후기

기술면접은 당연한걸 대답못하는 내가 답답했다 기초가 중요하다고 그렇게 말하고 가르치면서 정작 내가 기초를 햇갈려서 대답 못했다 인성면접은 말을 똑바로 해야겠다고 생각했다 급하게 말하려고 하지말고 말을 끊기게 하지 말자 협업 경험을 포트폴리오로 보여줄수 없다면 아르바이트 경험을 이력서에 넣는것이 좋다 회사는 실력도 중요하지만 커뮤니케이션 능력도 중요하게 생각한다 스스로 오늘 면접 점수를 매기자면 50점도 아슬아슬하다고 생각한다 중요하지만 자주 놓치는 개발기초들을 꼼꼼히 공부하자

잡담 2021.07.22