본문 바로가기

분류 전체보기376

판교역 여의나룻 판교점 오늘 간곳은 판교역 1번 출구 판교테크원 2층에 새로생긴 여의나룻이라는 식당에 가보았다. 저녁시간이라 그런지 식당은 매우 바빠보였다. 때문에 주문이 씹히는 경우도 있었다. 바로 우리테이블.. 사람은 많은데 서빙하는 사람은 2~3명 뿐이다. 너무 바쁘다. 차림표는 간단하다. 대부분 사람들은 요리 메뉴보다 식사메뉴를 먹는 듯하다. 여기의 메인메뉴는 한우탕이다. 공기밥은 2000원으로 인플레이션을 실감케 하는 선을 넘나드는 가격이다. 다행히 한우탕을 시키면 밥이 들어있다. 한우 육개장과, 한우탕을 시켜보았다. 한우 육개장은 약간 맵다. 밥하고 같이 먹어야한다. 한우탕은 맑은 육수에 고기가 있어 마치 국밥처럼 먹을 수 있다.(가격은 국밥이 아니다.) 전반적으로 나쁘지 않은 맛이지만 위치가 위치인지라 가격이 다소.. 2022. 9. 14.
이케아의 이상한 품질보증 10년 (플린탄 사무용 의자) 얼마전 간단한 사무용 의자가 필요해 이것 저것 알아보았다. 가장 간단한 선택은 기존에 쓰고 있던 시디즈 T50을 구입하는 것이 었으나 잠깐잠깐 앉을 의자에 35만원이나 하는 의자를 덜컥 사기는 좀 꺼려졌다. 때문에 조금 더 저렴한 의자들로 찾아 보았는데 눈에 들어온건 이케아의 플린탄 사무용 의자였다. 이케아의 플린탄 의자는 이케아 사무용 의자 중 거의 가장 저렴한 9만원대에 만나볼 수 있었다. 바로 이케아 오프라인 매장으로 달려가 보았다. 이케아 플린탄 의자를 앉아보니 착좌감도 나쁘지 않고 적당히 탄탄한 좌판이 맘에 들었다. (시디즈 t50은 너무 물렁거려서..) 9만원대에 나쁘지 않은 구성이다. 무엇보다 10년? 보증이라는 문구가 눈에 띄었다. 그만큼 튼튼하달까? 나는 참고로 이케아 패밀리에 가입이 되.. 2022. 9. 4.
[클린코드] 3장 - 함수 어떤 프로그램이든 가장 기본적인 단위가 함수이다. 작게 만들어라! 함수를 만드는 첫째 규칙은 '작게'다. 함수를 만드는 둘째 규칙은 '더 작게'다. 한 가지만 해라! 함수는 한 가지를 해야한다. 그 한가지를 잘해야한다. 그 한가지만 해야한다. 의미 있는 이름으로 다른 함수를 추출 할 수 있다면 그 함수는 여러 작업을 하는 셈이다. 함수 당 추상화 수준은 하나로 함수가 확실히 '한 가지'작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다 내려가기 규칙 코드는 위에서 아래로 이야기처럼 읽혀야 좋다. 한 함수에는 추상화 수준이 한단계 낮은 함수가 온다. 즉, 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한번에 한 단계식 낮아진다. 서술적인 이름을 사용하라! 함수가 작고 단순할수록 서술적인 .. 2022. 8. 16.
[클린코드] 2장 - 의미 있는 이름 2장 - 의미 있는 이름 의도를 분명히 밝혀라 의도가 분명하게 이름을 지으라. 변수(함수나 클래스)존재 이유는?, 수행기능은? 사용방법은? 따로 주석이 필요하다면 분명히 드러내지 못했다는 말이다. 그릇된 정보를 피하라 hp, aix, sco는 변수 이름으로 적합하지 않다. 유닉스 플랫폼이나 유닉스 변종을 가리키는 이름이기 때문이다. 독자에게 그릇된 정보를 제공하면 안된다. 일관성이 떨어지는 표기법은 그릇된 정보다. 의미 있게 구분하라 컴파일러나 인터프린터만 통과하려는 생각으로 코드를 구현하는 프로그래머는 스스로 문제를 이르킨다. 예를 들어 함수의 인자로 a1, a2 보다 source, destination을 사용한다면 코드가 읽기 편해진다. NameString보다는 Name으로 사용하여 불용어 중복을 피.. 2022. 8. 7.
[클린코드] 1장 - 깨끗한 코드 1장 - 깨끗한 코드 코드가 존재하리라 코드가 언젠가 사라지리라 생각하는 사람은 언젠가 비정형적인 수학이 나오리라 기대하는 수학자와 비슷하다. 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. 나쁜코드 우리 모두는 자신이 짠 쓰레기 코드를 처다보며 나중에 손보겠다고 생각한 경험이 있다. 나중에 다시 돌아와 정리하겠다고 다짐했었다. 나중은 결코 다시 오지 않는다. 나쁜 코드로 치르는 대가 시간을 들여 깨긋한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길이라는 사실을 인정하라 프로젝트 실패는 우리에게도 커다란 책임이 있다. 특히 나쁜코드가 초래하는 실패에는 더더욱 책임이 크다. 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다. 환자 말을 그대로 따.. 2022. 8. 5.
[Win32] 메시지 루프는 어떻게 창에 메시지를 전달할까? 하나의 윈도우 프로그램에는 여러 개의 창이 존재한다. 그리고 그 창에는 자기한테 들어온 메시지를 처리하기 위해 각자의 프로시저(Procedure)를 갖는다(엄밀히 창 클래스마다 프로시저를 갖는다). 그렇다면 어떻게 메시지 루프는 메시지에 알맞은 창을 찾을 수 있을까? 다음은 일반적인 윈도우 프로그램의 메인 메시지 루프(싱글스레드)이다. // Main message loop: while (GetMessage(&msg, nullptr, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } 메시지 큐에서 GetMessage로 메시지를 가져와 Transla.. 2022. 7. 31.
[Win32] 윈도우의 닫기 버튼을 눌렀을 때 일어 나는 일 (WM_CLOSE) 이번 포스트에서는 Win32 GUI프로그래밍을 공부하면서 거의 처음으로 배우는 내용인 윈도우가 닫힐 때 일어나는 일에 대해서 알아보겠다. 쌩으로 Win32부터 MFC, WTL까지 하다보니 좀 오래전에 공부해서 인지 가물가물하여 다시한번 리마인드 차원에서 정리해본다. Windows에서 창의 닫기 버튼을 눌렀을때 어떤일이 발생할까? 사용자가 닫기창이 눌렸을 때, 개발자는 많은 것을 고려해야 할 수 있다. 단순히 창을 hide할 것인지, 정말로 프로그램을 종료할 것 인지? 종료한다면 메모리정리, 리소스 정리, 사용자가 작업한 내용, 프로그램의 상태등을 안전하게 정리할 것인지 고려 해야 할 수 있을 것 이다. 닫기동작은 나름 그래서 중요하다고 생각한다. 그럼 닫기 버튼을 눌렀을 때 어떤 일이 발생할까? http.. 2022. 7. 31.
신지모루 더치 패브릭 아이폰 라이트닝 케이블 구입기 아이폰, 에어팟, 매직키보드들을 구입하면서 애플 라이트닝 정품케이블이 몇개 집에 굴러다니고 있다. 하지만 이것들의 문제점은 내구도이다. 잘못쓰다보면 너덜너덜 해져서 막굴리기 힘들다. 그래서 이번에 저렴하면서도 좀 내구성있는 라이트닝케이블을 찾아보았다. 신지모루에서 나온 라이트닝 케이블이다. 쿠팡에서 2개에 4900원에 팔고 있어 나름 저렴하다 판단되어 구매해 보았다. 받고보니 딱 중국산 느낌이 물씬이다. Made in China 로 중국산이다. 하지만 내구성은 애플 정품 라이트닝 케이블보다 좋아보인다. 패브릭소재로 나름 내구성을 살렸다. 라이트닝 단자도 이상없다. 구매링크 https://link.coupang.com/a/sCV44 "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를.. 2022. 7. 13.
백준 - 보물 - Swift 수학 그리디 알고리즘 정렬 import Foundation let N = Int(readLine()!)! let arrayA = readLine()!.split(separator: " ").map{Int(String($0))!} let arrayB = readLine()!.split(separator: " ").map{Int(String($0))!} let sortedA = arrayA.sorted(by: { $0 $1}) var sum = 0 for i in 0 ..< N { sum += sortedA[i] * sortedB[i] } print(sum) https://www.acmicpc.net/problem/1026 1.. 2022. 7. 10.