프로그래밍
-
클린 코드 - 점진적 개선프로그래밍/방법론 2021. 10. 21. 18:23
args 파싱 프로그램 Java시절 사용하던 main 함수의 args 배열 파라미터를 Args라는 인스턴스에 값을 저장하고 쿼리하는 내용의 프로그램을 작성해보자. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) try { val schema = "l,p#,d*" val args = arrayOf("-p", "10", "-d", "Hi", "-l", "true") val arg = Args(schema, args) val logging = arg.getB..
-
Large Screen - 태블릿(Large screen) 앱 품질프로그래밍/Android 2021. 9. 7. 20:52
태블릿(Large screen) 앱 품질 가능한한 직관적이고 잘 디자인된 UI를 제공하여 태블릿 사용자가 편리하게 사용하도록 한다. 모든 것을 다 지킬 순 없지만, 고객에게 최상의 상품을 제공하려면 가능한 최대로 이를 준수하는 것이 좋다. From tablets and Chromebooks to foldable devices. In addition, there's a great diversity of screen types and app display states. These checklists define minimum quality criteria and associated tests to help you assess the quality of your app. Some of these criteri..
-
Large screen - 다양한 화면 크기 지원프로그래밍/Android 2021. 9. 6. 23:38
아래는 하나의 APK에서 여러 크기 화면 지원하는 방법이다. 레이아웃 크기 조정이 허용되는 뷰 크기 사용 화면 구성에 따라 대체 UI 레이아웃 만들기 뷰에서 확장할 수 있는 비트맵 제공 This page shows you how to support different screen sizes with the following techniques: Use view dimensions that allow the layout to resize Create alternative UI layouts according to the screen configuration Provide bitmaps that can stretch with the views 유연한 레이아웃 만들기 (Create a flexible layou..
-
Large screen프로그래밍/Android 2021. 8. 31. 18:50
라지스크린(Large screen) 이란? 태블릿, 폴더블, 크롬북을 의미한다. Tablet, foldable phone, Chromebooks 자주 나오는 정의(Definition) Pixel densities: The pixel density is the number of pixels within a physical area of the screen and is referred to as dpi (dots per inch). Resolution: the total number of pixels on screen. Window: A Window is a rectangular area which has one view hierarchy. A window is basically like you think ..
-
클린 코드 - 단위 테스트프로그래밍/방법론 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|..
-
보안 소켓프로그래밍/Java 2021. 4. 4. 22:49
보안 통신 와이파이를 사용하게되면 단말기와 무선 공유기 사이에 패킷이 전송된다. 해커가 설치한 와이파이 혹은 보안에 취약한 와이파이를 사용하게 되면 해당 공유기를 통해 통신하는 모든 데이터가 해커에게 노출된다. 스누핑(snooping) - 네트워크상에서 남의 정보를 염탐하여 불법으로 가로채는 행위. 소프트웨어 프로그램(스누퍼)을 이용하여 원격으로 다른 컴퓨터의 정보를 엿볼 수 있어, 개인적인 메신저 내용, 로그인 정보, 전자 우편 등의 정보를 몰래 획득한다. 반면, 네트워크 트래픽을 분석하기 위해 사용되기도 한다. 사례 AT&T는 자사 비밀룸에 설치된 데이터 마이닝 장비로 패킷을 복사하여 자사 고객의 모든 인터넷 트래픽에 대한 접근을 미국 국가안보국에 제공했다. 영국 정보통신본부는 세계의 전화 및 인터넷..