일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코인거스름돈
- stack
- DataStructure
- LRU
- Java
- memory
- QoS
- WebView
- 피보나치
- 피요모리2
- Kotlin
- 제곱근
- Dialog
- MFC
- synergy
- 동적프로그래밍
- 형변환
- SPI
- android
- 쌓기게임
- DynamicProgramming
- darkmode
- devicedriver
- Dokka
- Collection
- 보늬밤
- math
- 리틀포레스트
- FirebaseAuth
- AfxMessageBox
- Today
- Total
목록Computer (62)
퉁탕퉁탕 만들어보자
동적프로그래밍은 간단하게 생각하면, 이전에 도출된 해를 가지고 그 다음 해를 구하는 식으로 푸는것이다. 그러면 이게 문제를 점화식으로 나타낼 수 있는데, 점화식만 도출해 내면 코드는 아주 짧다. 가장 유명하고 쉬운 문제는 피보나치 수열이다. 피보나치 수열은, 처음 두 값이 주어진다. 수열의 n번째 값을 F(n) 이라고 할 때, F(0) = 0, F(1) = 1 이 주어진다. 그 다음으로 오는 수는 바로 이전 두 값의 합이다. F(0) = 0, F(1) = 1 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(2) + F(1) = 1 + 1 = 2 F(4) = F(3) + F(2) = 2 + 1 = 3 ... [0,1, 1, 2, 3, 5, .... ] 이렇게 나가게 되며, 점화식으로..

GRASP : General Responsibility Assignment Software Patterns Craig Larman의 9가지 원칙. 1. Creator A 클래스를 생성하는 역할을 누구에게 맡길까? -> B클래스가 A클래스를 갖고있을때 B에게 맡긴다. 예외 상황) 퍼포먼스 때문에 어디서 만들어진것을 재사용하고싶을때, 비슷한 클래스들을 많이 만들어야 될때 외부에서 일부러 그 객체에 와이어링을 주고싶을때. -> Abstract factory pattern이나 singleton에서 생성하게 할수도 있음 2. Information Expert 어떤 데이터를 활용하는 logic은 어디에 넣을까? -> 그 데이터를 갖고있는 곳에서 하자. 수업에는 여러 학생이 등록되어있고, 학생은 여러개의 숙제를 한다..
1. Design smells 나쁜 디자인의 여러가지 신호들 name symtoms Rigidity 시스템 변경이 쉽지않은 상태. 한군데를 바꾸려고 할때마다 계속 다른 곳도 같이 연쇄적으로 고쳐야되는 상태 Fragility 시스템의 한 부분을 바꿨을때 연관성 없는 다른 부분들의 오동작을 유발한다. Immobility 다른 부분에서 사용할 수 있는 부분을 떼어내는 것이 어렵다. Viscosity (끈끈) 설계에 맞는 코드를 추가하는것보다 해킹하는게 더 쉬운 상태 Needless Complexity 지금 현재 굳이 필요없는 복잡한 구조 Needless Repetition 코드가 2명의 프로그래머에 의해서 짜여진듯한 상태. "복사"님과 "붙여넣기"님 Opacity 작성자가 설명해주지 않으면 이해가 어려운 코드..
GoF 디자인 패턴. Purpose Defer object creation to another class or object Describe ways to assemble objects Address problems of assigning responsibilities Creational Structural Behavioral Scope class Factory Method Adapter Interpreter Template object Abstract Factory Builder Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Cor Command Iterator Mediator Memento Observer St..
PART 1. Introduction Chapter 1. OOAD(analysis & design) 분석단계: 도메인 concept와 object discovery. -> use case requirement -> domain model 디자인단계: design sw obj -> Class Diagram / design object's collabo -> Sequence Diagram Chapter 2. Iterative, Evolutionary, Agile 1. risk driven, client driven 한 iterative planning - 주요 risk : architecture 변경, client의 마음변경 - Risk driven iterative development includes m..

UML은 unified modeling language를 말한다. 의사소통에 사용되며, 요구사항/디자인 명세서 내용의 일부를 작성한다. -data modeling, -business modeling -object modeling -component modeling 에 사용된다. UML을 사용하는 3가지 방법 - 스케치 : OOA단계에서 주로 사용되며, conceptual 한 관점에서 커뮤니케이션을 위한 정도로, 대략적으로 큰 그림을 작성한다. - 블루프린트: OOD 단계에서 주로 사용되며, detail을 포함하여 정확하게 그린다. - Programming: implementation 정도의 레벨로 그린다 (이렇게까지는 잘 사용하지않음) * UML에 대한 오해 UML은 OOAD의 과정 또는 개발 과정은 아..
Object 1. Object란? Object란 물리적인, 컨셉추얼한 하나의 entity를 표현한다. 잘 디파인된 state와 behavior를 encapsulate하는 개체이다. - State: attribute. object가 가질 수 있는 condition 중 하나. 시간이 흐름에 따라 일반적으로 변한다. 예) Object human의 state : name, age, job 등등 - Behavior: operation. object가 할 수 있는 행동 예) Object human의 behavior : eat, sleep, doJob 등등 2. Class란? Class는 동일한 state 와 behavior를 갖는 set of objects 를 하나로 묶어주는 description 이다. - Att..
Android webview에 darkmode 적용은 Q이상부터 가능하다. 13이상 (API 33) 부터는 동작이 변경되어 맨 아래에 따로 기술한다. (매우 간단해짐!) Target SDK 33 이전 webview를 dark하게 만드는 방법은 2가지가 있다. 1) User Agent(browser) 가 강제로 dark하게 만드는법 2) 웹 페이지에서 CSS를 통해 dark 테마를 적용하는 법 1. WebView에 setForceDark를 해준다. WebSettingsCompat.setForceDark(...) * 업데이트! Android 13(API 수준 33) 이상을 타겟팅하는 앱의 경우 setForceDark() 메서드가 지원 중단되므로 이 메서드가 호출되면 작동하지 않음! 우선 1)번과 2)번 둘다..
윈도우와 리눅스를 시너지로 키보드/마우스를 같이 쓰려고 했는데 리눅스를 클라이언트로, 윈도우를 서버로 했더니 리눅스에서 마우스 휠이 안돌아가는 버그가 있고, 반대로 리눅스를 서버로, 윈도우를 클라이언트로 했더니 윈도우 상에서 한영키가 안눌려졌다. 그래서 버전을 바꿔서 설치해 보기를 몇 번, 구글링 해서 이것저것 명령어 쳐보았으나 안 먹힘. 결과적으로 mirhee's hangul manager 라는 프로그램을 깔았더니 윈도우에서 한영키 대신 쉬프트+스페이스 바로 한영전환이 잘된다. 해결! hangul manager 다운 받은 곳: http://freekang.tistory.com/408 synergy에서 shift+space 변환 이직을 하면서 데스크탑은 우분투(synergy server:Quicksyne..
커널에선 LRU 리스트를 다음과 같이 관리한다. enum lru_list { LRU_INACTIVE_ANON = LRU_BASE, LRU_ACTIVE_ANON = LRU_BASE + LRU_ACTIVE, LRU_INACTIVE_FILE = LRU_BASE + LRU_FILE, LRU_ACTIVE_FILE = LRU_BASE + LRU_FILE + LRU_ACTIVE, LRU_UNEVICTABLE, NR_LRU_LISTS }; inactive anonymous active anonymous inactive file active file lru unevectable 5개다. 맨 마지막 NR_LRU_LISTS 는 enum이라 0번부터 번호를 매기니까 5가 되는데 이게 lru list의 개수를 나타내는 변수로 ..