분류 전체보기 161

RxJava를 사용한 Debounce 구현

이번 포스트에서는 RxJava를 사용하여 간단하게 EditText에 Debounce를 구현하는 시간을 가져보도록 하겠습니다. 우선 시작하기에 앞서 Debounce가 무엇인지 알아보고 가도록 하겠습니다. Debounce vs. Throttle Debounce를 더 잘 설명하기 위해 비슷한 개념 중 하나인 Throttle과 함께 설명하도록 하겠습니다. Scrolling Event가 발생 할 때 마다 호출되는 Call Back이 있다고 가정해보도록 합시다. 이 말은 1px만 스크롤되어도 이벤트가 발생한다는 것을 의미합니다. 이런 Scrolling Event에 매 번 Call Back이 발생한다면 어떨까요? 그리고 그 Call Back이 수행하는 일이 리소스를 굉장히 많이 먹는 작업이라면 어떨까요? Thrott..

클라이언트 2019.07.30

UI Alert Controller 에 대한 이해

iOS 개발에 있어서 반드시 사용할 수 밖게 없는 Component가 있습니다. 바로 UI Alert Controller입니다. Android에서는 Dialog라고 불리는 것인데 iOS에는 UI Alert Controller가 2가지 형태로 제공됩니다. 1. alert 2. actionsheet Component의 이름이 생소해서 이게 뭐지? 했을 것이지만, 막상 이미지를 보니 아~ 이런 거구나 하고 생각했을 것입니다. iOS 에서 Swift를 사용하여 위 2가지 컴포넌트를 간단하게 구현해보도록 합시다. UI Alert 우선 아래의 코드를 보도록 합시다. uiAlertAction을 정의하기 전에 dialog를 띄워줄 버튼 이벤트를 연결합니다. (IBAction) @IBAction func onClickB..

클라이언트 2019.07.29

문제 풀이를 위한 프로그래밍 기법 - 1. 언어적 특성

알고리즘 문제 풀이를 위한 프로그래밍 기법에 대해 간단히 정리해보고자 한다. 단순 입/출력에서도 어떤 함수를 써야 실행 시간이 조금이라도 짧아질 수 있는지 알아보자. #include using namespace std; int main() { // 이 부분에 원하는 코드 } #include 는 표준 라이브러리 전체를 포함시키는 g++ 컴파일러의 기능이다. iosttream, vector, algorithm 등의 라이브러리를 개별적으로 포함시키지 않아도 자동으로 사용할 수 있게 된다. 작성된 소스 코드의 컴파일은 터미널에서 아래와 같은 명령어로 컴파일한다. g++ -std=c++11 -02 -Wall test.cpp -o test 컴파일러는 c++11 표준을 따르고(-std=c++11) 코드를 최적화 하며..

컴퓨터공학 2019.07.28

Kotlin 접근 제한자

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 접근 제한자의 접근 제한 범위 최상..

Kotlin 상속 (Kotlin Override) - 2

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..

모든 운동의 기본이 되는 코어 근육 운동

다이어트를 하거나 근육을 키우기 위해 웨이트 트레이닝을 많이 하고 있습니다. 하지만, 기본도 없이 무턱대고 헬스장에 있는 기구를 마음 껏 사용하다가는 자칫 잘못된 결과를 가져올 수 있습니다. 이를 위한 기본 개념으로 코어 운동에 대해 알아보도록 하겠습니다. :) 무슨 소리인가요? 코어(Core)란 우리 몸의 중심부를 뜻하기도 하는데요 몸의 중심인 척추와 골반을 흔들리지 않게 지지해주고 균형을 잡아주는 근육을 코어 근육이라고 부릅니다. 코어근육에는 크게 4가지의 종류의 근육이 있습니다. 1. 다열근(Multifidus) ​다열근은 허리 가장 심층부에 위치한 척추 바로 옆에 있는 근육입니다. 척추의 안정성을 도모하는 역할을 하고 몸의 움직임이 시작하기 직전에 가장 먼저 동원되는 근육입니다. ​ 2. 복횡근(..

일상이야기 2019.07.28

Kotlin 상속 (Kotlin Override) - 1

이번 포스트에서는 Kotlin에서 상속을 구현하는 방법에 대해 정리해보려고 합니다. 상속은 Java에서도 마찬가지로 객체 지향에서 가장 중요한 개념 중 하나입니다. Kotlin에서의 상속은 Java에서의 상속과 거의 비슷하나, 생성자 관계, 상속에 의한 캐스팅 부분에서 약간의 차이를 보이고 있습니다. Kotlin에서의 상속 Any 클래스 상속 : 클래스를 선언할 때 다른 상위 클래스를 참조해 작성하는 개념 일반적으로 Kotlin에서 클래스를 선언하면 Any 클래스를 상속받게 됩니다. (우리가 굳이 작성하지 않아도 자동으로 Any 클래스를 상속받도록 되어 있습니다.) 왜냐하면 Kotlin의 모든 클래스는 Any 클래스의 서브 클래스이기 때문이죠. Any 클래스는 자바에서 Object 클래스와는 다릅니다. ..

Android Data Binding을 사용해보자

안드로이드를 처음 배울 때 우리는 레이아웃을 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 메소드를 사용하여 구현하였을 것..

클라이언트 2019.07.24

Fragment View Pager 간단하게 구현하기

이번 포스트는 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..

클라이언트 2019.07.16

Kotlin에 대한 궁금증? (작성중)

1. Kotlin에서는 Java와 같이 int와 Integer같은 Primitive Type, ObjectType이 구분되어 있을까? 답: 구분되어 있지 않으며 모두 Object Type이다. 2. Kotlin에서는 논리 연산자를 어떤 것을 지원할까? 답: 코틀린은 자바와 달리 &, | 연산자를 지원하지 않는다. 오로지 &&와 ||만 지원한다. 3. Kotlin에서는 비트연산자를 지원할까? 답: 지원하지 않는다. 코틀린에서는 Primitive Type 역시 객체이기 때문에 연산자 함수로써 연산을 제공하며 비트연산 함수가 존재할 뿐이다. 4. 코틀린에서는 파일명과 동일한 public 클래스 사용을 강제할까? 답: NO, 코틀린에서는 자바와 달리 파일명과 동일한 public class 사용을 강제하지 않는다.