Retrofit2를 사용하여 Multipart Form-Data형태로 파일과 Body를 업로드하는 방법에 대해 정리해보고자 합니다. MultiPart에 대해서 잘 모르는 분들을 위해 간단하게 MultiPart에 대해 정리해보고자 합니다. Multipart/form-data File Upload Feature를 구현할 때, Client가 만약 Web Browser라면 Form을 통해서 사용자로부터 파일을 받고 올리게 됩니다. 이때 Web Browser가 보내는 HTTP 메시지에서 Content-Type 속성이 multipart/form-data로 지정되며, 정해진 형식에 따라 메시지를 인코딩하여 전송합니다. 이를 처리하기 위한 서버는 멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 ..
추상 클래스와 추상 메소드 추상 함수 추상 메소드(Abstract Method)는 미완성 함수 혹은 실행 영역이 없는 함수를 의미합니다. 메소드는 선언부와 실행부 2가지가 존재하는데 추상 메소드는 실행부가 없는 형태를 띄고 있습니다. 추상 메소드(Abstract Method)를 포함하는 클래스는 반드시 추상 클래스(Abstract Class)가 됩니다. 1 2 3 4 5 6 abstract class AbstractTest1 { fun myFun1() { //.... } abstract fun myFun2() } cs abstract는 클래스 선언부에 존재하고 있습니다. 그리고 abstract라는 예약어(Keyword)는 클래스 내부에서만 사용할 수 있습니다. 또한 클래스 내부에 선언된 메소드에서만 사용..
2019-07-28 Kotlin 상속 (Kotlin Override) - 1 2019-07-28 Kotlin 상속 (Kotlin Override) - 2 이전 글에 이어서 진행합니다. 아직 학습을 못하신 분들은 위 링크를 따라 들어가서 학습을 하신 후 다시 오시기 바랍니다. 이번 포스트에서는 Kotlin 언어에서의 접근 제한자에 대해 알아보도록 하겠습니다. public class User { public constructor() {} public val name: String = "KIM" public fun myFun() { } } 코틀린에서 제공하는 Access Modifier에는 4가지가 있습니다. public, internal, protected, private 접근 제한자의 접근 제한 범위 최상..
2019-07-28 Kotlin 상속 (kotlin Override) -1 이전 글에 이어서 진행합니다. 아직 학습을 못하신 분들은 위 링크를 눌러 학습을 하고 오시기 바랍니다. 상위 클래스의 멤버 접근 오버라이드를 통해 재정의한 멤버가 있어도 때로는 상위 클래스에 정의한 멤버도 함께 이용해야 하는 경우가 있습니다. 이럴 때 super라는 Keyword(예약어)를 사용합니다. open class Super { open var x: Int = 0 open fun someFun() { println("Super... someFun()") } } class Sub : Super() { override var x: Int = 20 override fun someFun() { super.someFun() prin..
이번 포스트에서는 Kotlin에서 상속을 구현하는 방법에 대해 정리해보려고 합니다. 상속은 Java에서도 마찬가지로 객체 지향에서 가장 중요한 개념 중 하나입니다. Kotlin에서의 상속은 Java에서의 상속과 거의 비슷하나, 생성자 관계, 상속에 의한 캐스팅 부분에서 약간의 차이를 보이고 있습니다. Kotlin에서의 상속 Any 클래스 상속 : 클래스를 선언할 때 다른 상위 클래스를 참조해 작성하는 개념 일반적으로 Kotlin에서 클래스를 선언하면 Any 클래스를 상속받게 됩니다. (우리가 굳이 작성하지 않아도 자동으로 Any 클래스를 상속받도록 되어 있습니다.) 왜냐하면 Kotlin의 모든 클래스는 Any 클래스의 서브 클래스이기 때문이죠. Any 클래스는 자바에서 Object 클래스와는 다릅니다. ..
안드로이드를 처음 배울 때 우리는 레이아웃을 XML을 사용하여 구현하였다. 그리고 activity class에서 view를 binding하여 기능을 구현하곤 하였다. 아래처럼 말이다. public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); } } 보통 위와 같이 findViewById 메소드를 사용하여 구현하였을 것..
이번 포스트는 Android에서 커스텀 Fragment Pager Adapter를 활용하여 간단하게 Fragment View Pager를 구현해보도록 하겠습니다. RecyclerView나 ListView보다 더 간단한 코드를 통해 Fragment View Pager를 구현할 수 있습니다. 1. XML Layout 구성하기 우선 Activity에 ViewPager를 추가해줍니다. (사이즈는 Max로 해주셔도 되고 본인취향입니다.) 간단하게 ViewPager를 match_parent, match_parent로 하여 레이아웃을 구성해보았습니다. 이제 ViewPager에 추가해 볼 Fragment Layout를 짜보도록 하겠습니다. 레이아웃은 간단하게 구성합니다. fragment_start_1.xml fragm..
1. Kotlin에서는 Java와 같이 int와 Integer같은 Primitive Type, ObjectType이 구분되어 있을까? 답: 구분되어 있지 않으며 모두 Object Type이다. 2. Kotlin에서는 논리 연산자를 어떤 것을 지원할까? 답: 코틀린은 자바와 달리 &, | 연산자를 지원하지 않는다. 오로지 &&와 ||만 지원한다. 3. Kotlin에서는 비트연산자를 지원할까? 답: 지원하지 않는다. 코틀린에서는 Primitive Type 역시 객체이기 때문에 연산자 함수로써 연산을 제공하며 비트연산 함수가 존재할 뿐이다. 4. 코틀린에서는 파일명과 동일한 public 클래스 사용을 강제할까? 답: NO, 코틀린에서는 자바와 달리 파일명과 동일한 public class 사용을 강제하지 않는다.
- Total
- Today
- Yesterday
- Notissu
- C++
- 아이폰
- Elliotable
- Kotlin
- 상속
- 스위프트
- XCode
- Reactive programming
- apple
- CloudComputing
- 안드로이드
- 코틀린
- java
- 애플워치
- SwiftUI
- 함수형
- databinding
- 알고리즘
- Apple Watch
- Swift
- 함수형프로그래밍
- 컬렉션
- watchos
- ios
- Auto Layout
- android
- Rxjava
- 오토레이아웃
- retrofit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |