개요 개발자라면 한번쯤은 테스트 주도 개발 (TDD)에 대해 들어봤을 것이다. 테스트 위주의 코드 작성으로 알고있는 TDD의 장점과 단점을 살펴보고 대략적인 이해를 주는 것이 본 포스팅의 목적이다. 장/단점에 대한 내용은 hoons.net에 14년도에 작성된 http://www.hoons.net/Lecture/View/644 포스팅을 정리한 내용이다. TDD란? 테스트 주도 개발(Test-Driven Development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구사항을 검증하는 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다. 이 ..
AVC / H.264 란? H.264라고도 불리는 AVC(Advanced Video Coding)는 ITU-T 의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)와 ISO/IEC의 동화상 전문가 그룹(Moving Picture Experts Group, MPEG)이 공동으로 조인트 비디오 팀(Joint Video Team, JVT)을 구성하고 표준화를 진행한 결과물로 나온 동영상 압축 표준 중 하나이다. 이 표준은 MPEG-4 Part 10, AVC, H.264 등 전문가들 사이의 기싸움(?)에 의해 다양하게 불리는데, 이러한 원인은 JVT가 구성되게 된 계기와 관련 스토리를 찾아보면 알 수 있다. 재미있는 이야기가 많으니 관심있는 분들은 찾아보길 추천한다. 우리의 ..
개요 필자는 모 사이트에서 프로그래밍 문제를 해결하던 중, 입력된 데이터를 오름차순으로 정렬하여 리턴하라는 문제가 있어 해당 메소드에 대해 알아보았다. List에는 데이터 정렬을 위한 sort라는 메소드가 존제한다. 물론 List를 상속받는 ArrayList 또한 이 sort 메소드를 사용할 수 있다. 이를 통해 편리하게 오름차순 혹은 내림차순으로 데이터 정렬이 가능하다. Comparable를 구현(implements)하는 클레스 정렬을 하기 위해서는 리스트 속 데이터 간 크기 비교가 가능해야한다. 즉, 리스트 안에 들어있는 오브젝트의 수치화가 가능해야 한다는 것. Java에서는 비교가 가능한(수치화가 가능한) 오브젝트들은 Comparable 인터페이스를 implements 하고있으며 우리가 사용하는 대..
싱글톤(Singleton) 이란? 싱글톤은 딱 하나의 인스턴스만 생성할 수 있는 클래스다. 때문에 싱글톤은 앱이 메모리에 있는 한 계속 존재한다. 이러한 특징으로 인해 데이터를 싱글톤으로 관리할 경우 앱의 생명주기동안 고유한 데이터 사용을 보장할 수 있다. 하지만 Android OS가 Application을 메모리에서 제거할 때 같이 소멸되기 때문에 장기간 데이터 보존을 위한 솔루션은 아니다. (장기간 데이터 보존을 위한 솔루션으로는 SQLite, 서버 통신 등이 있다) 싱글톤의 특징 자기 자신을 저장하기 위한 static object를 갖는다. private 생성자를 갖는다. 인스턴스 반환을 위한 get 메서드를 갖는다. 만약 자신의 인스턴스가 있다면 get 메서드를 통해 기존 인스턴스를 반환한고, 반..
게터와 세터(getter and setter) getter와 setter는 말 그대로 어떤 오브젝트 혹은 변수의 값을 가져오거나, 설정해주는 역할을 하는 메소드를 말한다. 이들은 다음과 같은 규칙을 가지고 있다. getterreturn type은 참조할 맴버변수의 자료형과 일치해야 한다.이름 앞에 get 을 붙이고 뒤에는 리턴할 맴버변수의 이름 혹은 해당 변수를 직관적으로 표현하는 단어가 와야한다.ex) int getLength(); setterreturn type은 void 혹은 값의 설정 결과를 알려줄 수 있는 type이어야 한다.argument는 수정할 맴버변수와 같은 type이어야 한다.이름 앞에 set을 붙이고 뒤에는 수정할 맴버변수의 이름 혹은 해당 변수를 직관적으로 표현하는 단어이어야 한다...
문제 1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합).12 + 22 + ... + 102 = 3851부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱).(1 + 2 + ... + 10)2 = 552 = 3025따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다.그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까? 연구 문제만 봐도 로직이 생각날 정도로 매우 직관적이고 간단한 문제다. 변수를 1부터 100까지 증가시키면서 '제곱의 합' 과 '합의 제곱' 을 구해 두 값의 차를 구하면 될 것 같다. 풀이 '제곱의 합' 과 '합의 제곱' 을 구할 변..
문제 1 ~ 10 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 2520입니다. 그러면 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 얼마입니까? 연구 이 문제는 1부터 20까지 모든 숫자의 최소공배수를 구하는 문제다. 분명 수학적 원리를 통해 이를 구하는 공식이 있겠지만, 그러한 공식을 검색하며 푸는건 마치 반칙을 저지르는 기분이므로 필자는 노트와 팬을 꺼내 규칙을 찾아보기로 했다. 1~10의 최소 공배수가 2520 임을 알고있으므로 이를 토대로 분석해본 결과, 작은 수부터 1을 제외한 어떠한 공약수가 없을 때 까지 소수로 전체 숫자를 나눈 남은 모든 숫자의 곱이 최소공배수이다. 위와 같은 결론을 도출할 수 있었다. 글로만 봐서는 잘 이해가 되지 않을 수 있기 때문에 그림과 함께..
scanf 의 parameter는 아래와 같이 3가지로 분류된다. Whitespace charaterNon-whitespace character, except format specifier(%)Format specifier 여기서 whitespace는 아래 중 하나를 말하며, EOT(End of Text)로 인식한다. ' '(0x20)space (SPC)'\t'(0x09)horizontal tab (TAB)'\n'(0x0a)newline (LF)'\v'(0x0b)vertical tab (VT)'\f'(0x0c)feed (FF)'\r'(0x0d)carriage return (CR) 위 표에서도 나와있듯이 공백은 whitespace중 하나이기 때문에 데이터가 아닌 종료문자로 인식된다. 따라서 아래와 같은 코..
- Total
- Today
- Yesterday
- kotlin 기초
- 코틀린 기초
- 코틀린 기초강의
- 영어회화
- live template
- 런탭
- 안드로이드
- 프로그래밍
- LiveTemplate
- Android
- 안드로이드 스튜디오 라이브 템플릿
- android studio 설정
- 코딩
- 영어발음
- 코틀린
- Kotlin
- Java
- 안드로이드 스튜디오 설정
- 안드로이드 스튜디오
- 안스 템플릿
- 문제풀이
- php
- 프로젝트오일러
- android location service
- Programming
- android studio
- 통합위치제공자
- 코딩문제
- 자바
- 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |