본문 바로가기
[책 정리] 2장. 두 가지 가치에 대한 이야기 - Clean Architecture -모든 소프트웨어 시스템은 이해관계자에게 서로 다른 두 가지 가치를 제공한다.행위(behavior)와 구조(structure)가 바로 그것이다.소프트웨어 개발자는 두 가치를 모두 반드시 높게 유지해야 하는 책임을 진다. 행위 아키텍처 -소프트웨어는 '부드러움을 지니도록' 만들어졌다.소프트웨어는 기계의 행위를 쉽게 변경할 수 있어야 한다.만약 기계의 행위를 바꾸는 일을 어렵게 만들고자 했다면, 우리는 소프트웨어가 아니라 하드웨어라 불렀을 것이다. -소프트웨어가 가진 본연의 목적을 추구하려면 소프트웨어는 반드시 '부드러워'야 한다.다시 말해 변경하기 쉬워야 한다.이해관계자가 기능에 대한 생각을 바꾸면, 이러한 변경사항을 간단하고 쉽게 적용할 수 있어야 한다.이러한 변경사항을 적용하는 데 드는 어려움은 변경되.. 2020. 4. 6.
[Coroutine] Coroutine context and dispatchers https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/coroutine-context-and-dispatchers.md#thread-local-data -기존에 있었던 doc 이 update 되어서 따로 정리한다. Coroutine context and dispatchers -Coroutine 은 항상 어떤 context 하에서 실행된다.이 context 는 CoroutineContext type 을 가지며 Kotlin standard lib 에 정의되어 있다. -Coroutine context 는 여러개의 element 들을 가진 set 이다.main element 는 coroutine 의 Job, dispatcher 이다. Dispatchers.. 2019. 2. 8.
[Kotlin Tutorial] DSL construction - Chap 11. [Kotlin Tutorial] DSL construction - Chap 11. 참조 : Kotlin in action 11.1. From APIs to DSLs -DSL 을 작성하기 전에 생각해봐야 할 것이 있다. 우리의 (Kotlin?) 궁극적 목표는 가독성과 유지보수성을 최대로 늘리는 것.그것은 곧 좋은 API 를 설계하는 것으로 이어진다. 그렇다면 API 가 clean 하다는 것은 무슨 의미일까?1. 사용자가 읽기 좋은 것. 그것은 name 과 concept 을 잘 잡는 것이다.2. 의미없는 syntax 는 빼고, 최소한의 코드로 code 가 읽기 좋은 것. -Kotlin 에서는 clean API 를 위해서 extension function, infix calls, lambda syntax sh.. 2017. 9. 14.
[Effective Objective-C] #20 프라이빗 메서드 이름에 접두어를 사용하라 [Effective Objective-C] #20 프라이빗 메서드 이름에 접두어를 사용하라 출처 : Effective Objective-C -프라이빗 메서드에 접두어를 붙이는 것이 좋다.퍼블릭 메서드와 프라이빗 메서드를 깔끔히 구분하여 디버깅할 때 도움이 된다. -프라이빗 메서드에 표시를 해두면 메서드 이름이나 시그너처를 바꿀 때 한 번 더 생각하게 된다.메서드가 퍼블릭이면 변경을 좀 더 신중하게 생각해야 한다.클래스의 퍼블릭 API 로 바꾸는 것이 적절하지 않을 수 있기 때문이다.퍼블릭으로 변경하면 해당 클래스 사용자는 그들의 코드를 해당 변경에 맞게 갱신해야 한다.그러나 메서드가 내부를 위한 것이면 외부에 공개된 퍼블릭 API 에 영향을 끼치지 않고 오직 해당 클래스의 코드만 변경하면 된다. -사용할.. 2017. 8. 31.
[Effective Java] 지역 변수의 유효 범위를 최소화 하자. [Effective Java] 지역 변수의 유효 범위를 최소화 하자. - 지역 변수의 유효 범위를 최소화하면, 코드의 가독성과 유지 보수성을 높이고 에러의 가능성이 줄어든다. - C와 같은 종전 프로그래밍 언어들은 지역 변수를 블록의 맨 앞에 선언해야 했으며, 일부 프로그래머들은 습관 때문에 계속 그렇게 한다. 하지만 이것은 버려야 할 습관이다. 자바에서는 명령문만 적법하다면 어디에든 변수를 선언할 수 있기 때문. - 지역 변수의 유효 범위를 최소화하는 가장 강력한 방법은 그 변수가 최초 사용되는 곳에 선언하는 것. 만일 변수를 사용하기 전에 선언하면 혼란만 생긴다. - 지역 변수의 선언과 초기화에 주의하자. 만일 변수를 올바르게 초기화하는데 필요한 정보가 충분하지 않다면, 충분하게 될 때 까지 선언을 .. 2017. 1. 24.
[Django] 파이썬 웹 프로그래밍 - Django 의 핵심 기능 #1 [Django] 파이썬 웹 프로그래밍 - Django 의 핵심 기능 #1 -책을 읽으며 Remind 하는 내용, 핵심 내용, 모르던 내용을 정리한 것입니다. 예문 및 자세한 설명은 책을 구매하여 보세요~ * 4.1.1. 데이터 입력 및 수정 * 4.1.2. 필드 순서 변경하기 -테이블 데이터 변경이 아닌 테이블을 보여주는 UI 양식 변경은 admin.py 파일을 변경하면 된다.아래와 같이 순서에 대해 정의하는 admin.ModelAdmin 을 상속하는 녀석을 만들고, register 할 때 이 class 를 함께 전달하면 된다. class QuestionAdmin(admin.ModelAdmin): fields = [‘pub_date’, ‘qestion_text’].. 2016. 12. 13.
[PHP] 코드 재활용과 함수 작성 Tutorial PHP, 코드 재활용과 함수 작성 Tutorial =====require() 와 include() 사용하기 - require( "fileName" ) 을 사용하면require()를 호출한 자리가 해당 파일 내용으로 바뀌고 스크립트가 실행된다. - require() 로 불러들이는 파일이 로 감싸있지 않다면,html 파일 형식으로 불러들인다. - include 는 require 와 기능을 같다.다만 require 는 실패했을 경우 치명적 오류를 내지만, include 는 가벼운 오류만 내뿜는다. - require_once(), include_once()파일을 한번만 포함시킨다.library 를 포함시킬 때 같은 라이브러리를 두 번 이상 포함시키는 일을 막아준다. =====auto_prepend_file, a.. 2013. 11. 26.
[Tutorial] Introduction of PHP. Introduction of PHP. Tutorial 대신 를 사용하는 것을 SGML 방식이라고 하며, 이 스타일을 사용하려면 config 파일의 short_open_tags 를 활성화시키거나 짧은 스타일 태그를 사용할 수 있도록 PHP 를 컴파일 해야 한다. 이 방식은 대부분의 서버가 지원하지만, 몇몇 서버는 xml 형태의 선언에 영향을 주기 때문에 Off 를 시켜 놓는다. 따라서 특수한 경우 혹은 config 에 확신이 있는 경우가 아니면 사용하지 않는 것이 좋겠다. 형식으로도 사용 가능하다. ASP 방식으로 알려진 도 사용할 수 있는데, 이 역시 config 파일에서 asp_tags 를 활성해놓았어야 사용할 수 있다. 이는 대부분의 서버에서 기본으로 활성화되어 있지 않기 때문에 "가급적" 사용하지 .. 2013. 10. 5.
[Spring] Spring Framework 의 개요 #3 Spring Framework 의 개요 #3 Spring의 IoC Spring Bean ( 그냥 Bean 이라고도 부름 )Spring Container 가 생성과 관계설정, 사용 등을 제어하는 IoC가 적용된 object. Bean Factory 확장한 Application Context별도의 정보를 참고하여 Bean의 생성, 관계 설정 등의 제어작업을 총괄코드에 상세내용이 들어가는 것이 아니라 설정정보를 가진 별개의 파일(xml)을가져와 활용하는 범용 IoC 엔진 Annotation Config Application Context @ConfigurationFactory class 에 붙는 annotation @BeanObject 만들어 return 하는 method. 예제코드ApplicationCont.. 2013. 6. 27.
반응형