본문 바로가기

전체 글

구글 스프레드시트로 바(bar) 차트, 간트(gantt) 차트 만들기 구글 시트 또는 엑셀에서는 sparkline 함수를 제공하여 간단한 차트를 만들 수 있다 (링크) 시작, 종료 기간을 설정하여 주단위의 일정 관리를 위한 차트를 만들어 관리하기 위해서 만들었다. 주단위를 표기하기 위해 WEEKNUM 함수를 사용해 시작, 종료일의 주차 수를 기준으로 표시할 월별 주차수를 계산하여 SPARKLINE 함수로 차트를 그린다. =SPARKLINE({WEEKNUM(C6)-MIN(E$5:AD$5), WEEKNUM(D6)-WEEKNUM(C6)+1, MAX(E$5:AD$5)-WEEKNUM(D6)}, {"charttype","bar"; "max", MAX(E$5:AD$5)-MIN(E$5:AD$5)+1; "color1", "white"; "color2", IF(B6="대기","slikblu.. 더보기
tail 사용법 로그나 텍스트 파일의 마지막 부분을 확인하고자 할 때 사용함 tail example.txt > 텍스트의 마지막 10라인을 보여줌 tail -n 5 example.txt > 텍스트의 마지막 5라인을 보여줌 tail -f example.txt > 텍스트의 마지막 10라인을 보여주고 추가로 갱신되는 텍스트를 계속 보여줌 (실시간 로그 확인) tail -f example.txt | grep "ancdesign" > 텍스트의 마지막 10라인과 그 이후로 추가되는 라인에서 "ancdesign" 문자열이 있을 경우 보여줌 출처 링크 : https://www.linode.com/docs/tools-reference/tools/view-and-follow-the-end-of-text-files-with-tail/ Vie.. 더보기
_Pragma 전처리 연산자 _Pragma 연산자는 매크로에서 전처리 정의 기능을 사용하기 위한 용도로 사용된다 기존의 #pragma 지시어는 매크로에서 사용할 수 없다. 사용법 _Pragma (문자열 리터럴) 예시 #define STRONGIFY(var) \ _Pragma("clang diagnostic push") \ _Pragma("clang diagnostic ignored \"-Wshadow\"") \ __strong __typeof(var) var = (Weak_##var); \ _Pragma("clang diagnostic pop") #define WEAKIFY(var) \ __weak __typeof(var) Weak_##var = (var); 출처 링크 : https://jacking75.github.io/C++11.. 더보기
objective-c propery & synthesize propery - getter, setter의 선언을 대신할 수 있는 지시어 형식 : @propery(특성 나열) 변수 선언; synthesize - getter 와 setter 의 구현을 대체 형식 : @synthesize 변수명; 프로퍼티 특성 @property(setter|getter = 메서드명) 자료형 변수명; 메서드를 직접 작성한 경우 연결할 때 사용 @property(readonly|readwrite) 자료형 변수명; 읽기 전용과 읽기와 쓰기 가능 프로퍼티 지정 - 기본은 readwrite @property(assign|retain|copy) 자료형 변수명; 멤버변수가 객체인 경우 대입방법에 대한 지정 - 객체인 경우 필수 @property(nonatomic) 자료형 변수형; 멀티 스레드 환.. 더보기
[[fallthrough]]; int main() { int n = 5; switch (n) { case 1: a(); break; case 2: b(); d(); [[fallthrough]]; // I meant to do this! case 3: c(); break; default: d(); break; } return 0; } 다음 케이스 구문을 실행하고자 할 때 사용함 c++ 17에서 사용 가능함 다음 case/default 바로 직전에 사용 마지막 case/default 사용 불가 break 와 같이 사용 불가 c++은 이미 switch문에서 break를 생략하면서 fallthrough 를 사용 가능하지만 명시적으로 컴파일러에게 알려주는 컴파일 경고를 제거함 (실수인지 의도한 부분인지 명확해짐) 더보기
__builtin_expect #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) 성능을 향상시키기 위해 예측 가능한 결과에 대해서 컴파일러에 알려줘 CPU가 더 효율적으로 명령어를 fetch할 수 있도록 한다. likely()는 true가 될 확률이 높은 조건문에서 사용하여 성능을 높이고자 사용한다. unlikely()는 false가 될 확률이 높은 조건문에서 사용하여 성능을 높이고자 사용한다. 참고 링크 : http://jake.dothome.co.kr/likely/ , http://minjang.egloos.com/561972 더보기
#pragma mark #pragma mark Object Liftcycle ... #pragma mark Client Management ... 위와 같이 코드 단계마다 전처리기를 삽입하면 xcode에서는 코드를 좀더 쉽게 찾아볼 수 있도록 제공하고 있다. visualstudio 에서는 아래 전처리를 사용해서 비슷한 효과를 줄 수 있음 #pragma region name #pragma endregion comment name (optional) 영역의 이름이며 코드 편집기에 표시 comment (optional) 코드 편집기에 표시되는 주석 참고 링크 : https://blog.yagom.net/268 , https://docs.microsoft.com/ko-kr/cpp/preprocessor/region-endregion?.. 더보기
__attribute__((format(__NSString__, 3, 4))) void logMessage(LogLevel level, FILE* description, NSString* format, ...) __attribute__((format(__NSString__, 3, 4))); 여기서 __attribute__((format(__NSString__, 3, 4))) 가변인자로 들어오는 함수의 파라미터를 체크해 준다. (3번째는 포맷스트링, 4번째는 가변인자, 컴파일시 -Wall 옵션 필요) 참고 링크 : http://egloos.zum.com/cityelf/v/1580371 더보기