분류 전체보기
-
클린 코드 - 단위 테스트프로그래밍/방법론 2021. 8. 27. 18:45
요약 테스트 케이스는 현재 아키텍처와 설계를 최대한 깨끗하게 보존하는 열쇠 TDD를 무조건 따를 필요는 없다. 테스트 코드는 가독성이 중요하다. 테스트당 개념/assert 하나씩. FIRST : Fast, Independent, Repeatable, Self-Validating, Timely 90년대는 프로그램이 돌아가는 수준까지만 중요해서 테스트 코드가 그렇게 중요하지 않았다. 근래 우리 프로그래밍 분야는 눈부신 성장을 이루어 테스트 코드를 쉽게 작성할 수 있는 수준까지 도달하였다. 애자일과 TDD(Test-Driven Development) 덕분에 테스트를 자동화하는 프로그래머들이 이미 많아졌으며 점점 더 늘어나는 추세이다. 테스트와 코드를 하나의 소스 패키지로 공유할 수도 있다. 하지만, 아무리 급..
-
클린 코드 - 주석프로그래밍/방법론 2021. 7. 26. 11:01
주석은 언제나 실패를 의미한다. 오래 되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨려 해악을 미친다. 주석은 필요악이다. 코드로 의도를 충분히 표현한다면 주석은 필요하지 않다. 따라서 주석은 의도를 표현하지 못해 실패를 만회하기 위해 사용한다. 주석은 오래될 수록 코드에서 멀어진다. 그릇될 가능성도 커진다. 코드는 변화하고 진화하기 때문에 여기 저기로 옮겨지기도 한다. 주석은 언제나 코드를 따라가지 못한다. 예를 들면, MockRequest request; private final String HTTP_DATE_REGEXP = "[SMTWF][a-z]{2}\\,\\s[0-9]{2}\\s[JFMASOND][a-z]{2}\\s" + "[0-9]{4}\\s[0-9]{2}\\:[0-9]{2}\\:[0-9]}2|..
-
Blur 알고리즘Graphics/OpenGL ES 2.0 2021. 7. 6. 22:54
Blur is the expensive "post processing". 블러이펙트는 full screen scene이나 특정 사이즈를 blur효과를 주는 것이다. Texture를 렌더링한 장면에서 2d image를 연산하는 것을 “post processing“이라고 부른다. "Post processing"은 꽤 expensive한 연산으로 shader 프로그램에 상당한 optimization을 해야한다. The blur effect is used for blurring the full screen scene or blurring individual objects in that scene. Whenever we perform 2D image operations on a scene that has been..
-
Android Hilt를 이용한 의존성 주입카테고리 없음 2021. 6. 21. 20:59
Android에서 DI(Dependency Injection)은 프로그래밍에 많이 사용되는 테크닉이며 안드로이드 개발에 적합하다. 또한, 리팩토링 용이, 재사용성 : 의존성이 필요한 클래스를 직접 생성하지 않으므로 클래스를 외부에서 교체하기 쉽다. 테스트 작성 용이 : 여러 구현의 클래스를 주입해 다양한 케이스를 확인할 수 있다. 측면에서 개발에 용이하게 도와준다. Dependency injection이란? 한 클래스는 종종 다른 클래스를 참조한다. 예를 들면, `Car`라는 클래스는 `Engine`이라는 클래스를 참조하고 있다. 이렇게 클래스를 필요로하는 것을 의존성(dependency)이라고 한다. 아래 예제에서는 `Car`라는 클래스가 동작하기 위해서 `Engine`이라는 클래스를 참조하는 내용이다..
-
보안 소켓프로그래밍/Java 2021. 4. 4. 22:49
보안 통신 와이파이를 사용하게되면 단말기와 무선 공유기 사이에 패킷이 전송된다. 해커가 설치한 와이파이 혹은 보안에 취약한 와이파이를 사용하게 되면 해당 공유기를 통해 통신하는 모든 데이터가 해커에게 노출된다. 스누핑(snooping) - 네트워크상에서 남의 정보를 염탐하여 불법으로 가로채는 행위. 소프트웨어 프로그램(스누퍼)을 이용하여 원격으로 다른 컴퓨터의 정보를 엿볼 수 있어, 개인적인 메신저 내용, 로그인 정보, 전자 우편 등의 정보를 몰래 획득한다. 반면, 네트워크 트래픽을 분석하기 위해 사용되기도 한다. 사례 AT&T는 자사 비밀룸에 설치된 데이터 마이닝 장비로 패킷을 복사하여 자사 고객의 모든 인터넷 트래픽에 대한 접근을 미국 국가안보국에 제공했다. 영국 정보통신본부는 세계의 전화 및 인터넷..
-
Android Room 데이터베이스 코드랩프로그래밍/Android 2021. 3. 30. 18:00
Android Architecture Components Android architecture components는 Jetpack의 일부 라이브러리들이다. 안드로이드 앱을 쉽게 구성할 수 있도록 도와준다. ex. Room, LiveData, ViewModel 등이 있다. https://developer.android.com/codelabs/android-room-with-a-view-kotlin Android Room with a View - Kotlin | Android 개발자 | Android Developers In this codelab you build an Android app in Kotlin that uses Android Architecture Components (RoomDatabase..
-
URL과 URI프로그래밍/Java 2021. 2. 15. 09:02
호스트는 인터넷이 연결된 컴퓨터이다. 이 호스트는 인터넷 주소(Internet address) 혹은 IP 주소라고 불리는 최소 하나의 고유한 숫자에 의해서 식별된다. 이 호스트에는 HTML 문서나 파일이 있을 수가 있는데 이러한 리소스의 위치를 식별하는데 사용하는 것이 URL(Uniform Resource Locator)이다. URL은 통합 리소스 식별자(URI, Uniform Resource Identifier)의 가장 널리 사용되는 종류 중 하나이다. 이제부터 URL 클래스와 URI에 대해서 알아보자. URL 클래스만 사용하면 원하는 데이터를 쉽게 얻을 수 있다. 이 URL 클래스는 자바 프로그램이 특정 위치로부터 데이터를 가져오는 가장 쉬운 방법을 제공한다. 이 클래스 내부의 프로토콜이나 서버와 통..
-
Jetpack Compose카테고리 없음 2021. 1. 31. 20:48
오늘은 Jetpack 라이브러리 중 Jetpack - WorkManager - Room - Compose Compose에 대해서 알아보자. Jetpack Compose는 안드로이드 UI를 만드는 최신 툴킷이고 코틀린 사용 (코틀린 API 사용) 적은 양의 코드 (XML, UI 위젯 사용하지 않아도 됨) 좋은 도구를 제공 의 특징을 가진다. 단, 현재 알파 버전이다. (Compose 1.0 is expected in 2021.) Jetpack Compose의 함수를 호출해서 원하는 요소를 사용하면 Compose 컴파일러에서 나머지 작업을 완료한다. Jetpack Compose는 @Composable 어노테이션을 사용해서 UI를 작성하는데, 이 @Composable이 표시되어 있는 Composable한 함수..