스포일러가 포함되어 있습니다. 인간은 망각의 동물이다. 방금 읽은 책의 내용이 무엇인지, 그저께 점심으로 무엇을 먹었는지도 쉽게 잊어버리고 만다. 이 망각에 맞서기 위해 인간은 글과 그림으로 경험을 기록하고, 반복적으로 같은 행동을 이행한다. 이렇듯 망각은 인간에게 불편한 존재이기도 하지만, 간혹 책이나 드라마에서 등장하는 '망각은 인간에게 허락된 축복이다.'라는 구절처럼 몇몇은 망각을 축복으로 받아들이기도 한다. '시간이 약이다.'라는 속담처럼 시간이 흐를 수록, 과거에 느꼈던 슬픔과 고통을 서서히 망각하기 때문이다. '망각하는 자에게 축복을'의 주인공 중 한 명인 '리사'는 그녀의 아버지가 회장인 거대 기업에서 이사 직을 맡아 '라이프 랜드스케이프'라는 혁신적인 VR 기기를 출시한다. '라이프 랜드스..
서론 23년 2월, GDSC Sookmyung에서 '찍어 먹는 디자인패턴'이라는 주제로 Speaker Session을 진행했습니다 :) 세션에서는 자꾸 다운되는 게임 서버를 오브젝트 풀링(또는 플라이웨이트) 디자인 패턴으로 최적화했던 경험을 발표했습니다. 오브젝트 풀링 패턴이란? 런타임 중에 동적으로 객체를 생성하기 위해서는 상당한 CPU와 메모리 비용을 필요로 합니다. 그렇기에 실시간으로 1초에 수백 또는 수천 개의 객체를 생성하는 것은 곧 CPU의 과부하를 초래합니다. 많은 유저들이 즐기는 FPS 게임에서는 어떻게 1초 동안 전장에서 수백 개의 총알이 날아다닐 수 있는 걸까요? 동적으로 생성하지 않고 정적으로 객체를 미리 생성하여 객체 생성과 삭제 비용을 절약했기 때문입니다. 오브젝트 풀링 패턴은 많..
8월 1일, GDSC Sookmyung의 졸업식을 마지막으로 GDSC Sookmyung 2기의 모든 활동이 끝났다. 대학 생활하면 GDSC! 라고 말할 수 있을 만큼 좋은 기억만 남아있어서 GDSC 지원에 관심있을 분들을 위하여 후기와 추천글을 남겨본다 :) 담당 역할과 지원하게 된 이유 필자는 2021년 2학기부터 1년 동안 GDSC Sookmyung의 Core member(Android)를 담당했다. GDSC란 구글 기술에 관심있는 대학생 개발자 커뮤니티로 전세계 106개국, 우리나라에는 21개의 대학교가 함께하고 있다. GDSC 내부에서는 로컬 문제 해결을 위해 Solution Challenge라는 세계적인 해커톤 행사가 열리는데, 이 솔루션 챌린지가 너무 재미있을 것 같다는 생각에 Core mem..
팩토리 메소드 패턴(Factory Method Pattern) 부모 클래스가 객체를 생성할 때 필요한 인터페이스를 제공하지만, 실제로 어떤 클래스의 인스턴스를 생성할지는 자식 클래스가 결정하는 패턴을 말합니다. → 사용하는 자식 클래스에 따라 생성하는 인스턴스 객체를 변경할 수 있습니다. Q) 실제 객체를 생성하는 자식 클래스가 하나밖에 없는데도 굳이 팩토리 메소드 패턴을 써야할까요? 하나밖에 없더라도 제품을 생산하는 코드와 이미 만들어진 제품을 사용하는 코드를 분리할 수 있기 때문에 팩토리 메소드 패턴은 충분히 유용하다고 합니다 :) 구조 및 예시 팩토리 메소드 패턴을 사용해 책을 따라 피자 객체를 생성하는 간단한 클래스를 만들어봅시다. PizzaStore는 추상 클래스입니다. 서브클래스에서 피자 객체..
데코레이터 패턴 (Decorator Pattern) 객체에 새로운 행동을 동적으로 더할수 있는 패턴으로 상속보다 훨씬 유연하게 기능을 확장할 수 있다는 장점이 있습니다. 마트료시카 인형 안에는 인형이.. 인형 안에 또 인형..이 있듯이, 데코레이터 패턴을 사용하면 클래스 안에 클래스.. 클래스 안에 또 클래스가 감싸져 있습니다. 구조 그래서 패턴을 구성하는 각 요소는 그 자체로 직접 쓰일 수도 있고, 또는 데코레이터에 감싸져 쓰일 수도 있습니다. 특징 한 객체를 여러 개의 데코레이터로 감쌀 수 있습니다. (마트료시카 인형처럼요!) 런타임에서도 객체에 필요한 데코레이터를 동적으로 마음껏 적용할 수 있습니다. ConcreteComponent에 새로운 행동을 동적으로 추가할 수 있습니다. 각 데코레이터 안에는..
옵저버 패턴(Observer Pattern) 한 객체의 상태가 바뀌면 그 객체를 관찰(구독)하고 있던 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 패턴입니다. 옵저버 패턴을 사용해 일대다(one-to-many)의 의존성을 정의할 수 있습니다. ex) java.swing 라이브러리: AbstractButton의 코드에서 옵저버 패턴의 필수품인 리스너들을 잔뜩 발견할 수 있습니다! 옵저버 패턴의 구조와 작동 방식 1. Publisher(출판사) 객체에서 중요한 데이터를 관리합니다. 2. Publisher의 데이터가 바뀌면 Publisher를 구독하고 있는 Subscriber(구독자) 객체들에게 바뀐 데이터의 내용이 전달됩니다. 3. Subscriber 객체들은 Subscriber 인터페이스의 구현체로..
- Total
- Today
- Yesterday
- linuxawk
- linux파일
- 리눅스
- 버추억박스에러
- SELECT #SELECTFROM #WHERE #ORDERBY #GROUPBY #HAVING #EXISTS #NOTEXISTS #UNION #MINUS #INTERSECTION #SQL #SQLPLUS
- 백준27219
- E_FAIL
- Linux
- virtualbox
- 백준27211
- cron시스템
- OnActivityForResult
- 사용자ID
- whatis
- 리눅스cron
- 코테
- linuxgedit
- api문서
- Baekjoon27211
- linuxtouch
- GithubAPI
- 백준
- GitHubAPIforJava
- atq
- baekjoon
- Baekjoon27219
- 쇼미더코드
- cat
- 버추억박스오류
- awk프로그램
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |