#1 운좋게 성공한 사업가 빌 게이츠? 아마 2011년 겨울이었을 것이다. 21살의 나이로 해군 2함대 위성통신운용병으로 근무하던 시절, 그 나이 때 남자들이 다 그러하듯, 전역 후 영향력 있는 사람이 되고싶다는 갈망에 사로잡혀 있었다. 영향력 있는 인물이 되기위해 여러가지 노력들을 했는데 그 중 하나는 세계적으로 영향력 있는 인물들에 대해 관심을 갖고 그들에 대한 책들을 읽어보는 것이었다. 당시 2함대 도서관은 일반 시립도서관 수준으로 규모가 컸기 때문에 책을 접하는데 어려움은 없었다. 그 중에서도 가장 먼저 읽은 책은 MicroSoft의 CEO 빌 게이츠 에 대한 책이었다. 그의 탄생부터 지금까지의 이야기들을 풀어놓은 책이었는데 한 줄로 요약하자면 이렇다. 훌륭한 집안에서 태어난, 한 천재의 성공신화..
개요 개발자라면 한번쯤은 테스트 주도 개발 (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을 제외한 어떠한 공약수가 없을 때 까지 소수로 전체 숫자를 나눈 남은 모든 숫자의 곱이 최소공배수이다. 위와 같은 결론을 도출할 수 있었다. 글로만 봐서는 잘 이해가 되지 않을 수 있기 때문에 그림과 함께..
- Total
- Today
- Yesterday
- 안드로이드 컴포즈
- 영어회화
- 컴포즈 바텀시트
- 코딩문제
- Programming
- php
- 문제풀이
- 안드로이드
- 안드로이드 스튜디오 라이브 템플릿
- 코틀린
- 프로젝트오일러
- 코틀린 기초강의
- Java
- kotlin 기초
- 런탭
- 코딩
- 안드로이드 스튜디오
- LiveTemplate
- 안드로이드 바텀시트
- 영어발음
- 자바
- 코틀린 기초
- android studio
- Android
- Kotlin
- 개발자
- compose bottomsheet
- 안스 템플릿
- live template
- 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |