최신 글
-
[Book review] 인간을 분석하는 6가지 도구 (Feat. MBTI)
서론책을 접하게 된 계기는 역행자를 읽은 것부터 시작한다. 이후 이 책의 저자가 운영하는 카페에 갔다가 이 책의 출판된 버전을 팔고 있었는데 간단히 읽다 맘에 들어서 사버렸다.ㅎ 사람의 심리에 대해 관심이 많았었는데 학술적인 접근보다 경험, 실용적인 접근이 마음에 들었고 거기다 실제 사례를 들어서 설명하니 더욱 신뢰가 갔다. (상담전문회사 경영에 마케팅하는 사람이라...) 거두절미하고 책의 핵심내용을 요약함과 동시에 사견을 붙여서 이야기해보려한다. 한줄로 요약하면 사람을 파악하는 법에 대해 다루고 있는 책이다. 6가지의 도구로 유형화시켜 설명한다. 책의 서론 부분에 "유형화에 대한 반박"이란 주제로 유형화 비관론자들에게 반박으로 시작한다. 요약하면 결국 유형화는 인간의 본성이고 반박하는 사람들조차 스스로..
2023.03.19
-
[git] system global local 차이점
git system global local 차이점 system 해당 파일 시스템이 있는 모든 사용자와 모든 저장소에 적용되는 설정 파일 /etc/gitconfig 에 저장 global 해당 사용자에게만 적용되는 설정파일 ex) 같은 linux user ~/.giconfig 에 저장 local 해당 저장소에만 적용 .git/config 에 저장 git commend default operation 중복된 옵션이 있다면 local, global, system 순서대로 덮어쓴다. ex) .git/config와 /etc/gitconfig에 같은 옵션이 들어있다면 .git/config에 있는 옵션을 사용한다.
2023.03.15
-
[Book review] 문서자료 - Software Engineering at Google, 구글 엔지니어는 이렇게 일한다.
서문 앞 글인 지식공유 글에서 이어집니다. 지식을 공유하는 효율적인 방법 중 하나가 문서자료라고 생각한다. 문서자료는 무엇이고 왜 필요할까? 또 많은 사람들이 효율적으로 양질의 문서자료를 관리하려면 어떻게 해야할까? 오늘은 책에서 문서자료 Chapter를 정리하고 사견을 붙여 이야기한다. 문서자료 문서자료(documentation)란 엔지니어가 작업을 끝마치기 위해 작성해야하는 모든 부수적인 텍스트이다. 여기에는 별도로 작성한 문서는 물론이고 코드주석까지 포함한다. 문서자료가 필요한 이유 개발자로서 내가 생각하는 문서자료가 필요한 가장 큰 이유는 양질의 프로그램을 만들기 위해서라고 생각한다. 좀 더 풀어서 설명하면 팀의 모든 구성원이 더 원활히 역량을 발휘할 수 있게 된다는 것이다. 이제 신입딱지를 막 ..
2023.01.20
-
[Book review] 지식공유 - Software Engineering at Google, 구글 엔지니어는 이렇게 일한다.
서문 주도적으로 성장하는데 관심이 많은데 그중에서도 독서를 하는 습관을 기르려 노력 중이다. 그 노력의 일환으로 book review를 진행하고자 한다. 첫 번째 책은 Software Engineering at Google 구글 엔지니어는 이렇게 일한다로 선정했다. 미국의 빅 테크 기업을 대표하는 기업 중 하나인 구글의 문화를 간접적이나마 체험해보고 개발자인 내 일에 적용하기 쉬울 것이라 생각했기 때문이다. 책을 읽으며 생각보다 공감 가는 부분이 많았다. software를 개발하는 데 있어 어느 정도 차이는 있겠지만 결국 겪는 어려움은 비슷한 것 같았다. 이 글에선 일부인 지식 공유 Chapter를 리뷰하고자 한다. 배움을 가로막는 장애물 구글은 조직에 배움의 문화가 자리 잡혀야 한다고 강조한다. 이런 ..
2022.11.03
-
[C, C++] type conversion 형 변환
형 변환 한 자료형에서 다른 자료형으로 값을 변환하는 것 암시적 형 변환(implict type conversion): 즉 컴파일러가 자동으로 하나의 기본 자료형을 다른 자료형으로 변환한다. 자동 형 변환(automatic type conversion)이라고 불린다. 명시적 형 변환(explict type conversion): 형 변환을 하기 위해 형 변환 연산자(type casting operator)를 사용한다. 의도치 않은 형 변환은 오류를 원인중 하나이기 때문에 되도록 피해야 하고 될 수 있으면 명시적 형변환을 사용해야한다. explicit 암시적 타입 변환을 수행하는데 쓰이지 않게 하는 키워드 class A { public: explicit A(int x = 0, bool b = true); ..
2022.05.03
-
[C++, 완전탐색] 프로그래머스 양궁대회
문제 https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 풀이 완전탐색 문제이다. 총 11개의 점수(0점 ~ 10점) 에서 라이언이 해당 점수를 선택하냐 선택하지 않느냐로 나눌 수 있다. 구현이 쉬운 dfs로 풀이하였다. 해당 문제에서 주의해야 할 점이 있다. 문제를 꼼꼼히 읽어보면 알 수 있는데 예시에도 나와있듯이 라이언이 가장 큰 점수 차이로 우승할 수 있는 방법이 여러 가지 일 경우, 가장 낮은 점수를 더 많이 ..
2022.04.07
-
[C++, 문자열, 슬라이딩 윈도우] 프로그래머스 추석 트래픽
문제 https://programmers.co.kr/learn/courses/30/lessons/17676
2022.04.05
-
[C++, 문자열] 프로그래머스 오픈채팅방
문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 해답 Stringstream과 hash를 이용해 풀이하였다. #include #include #include #include #include using namespace std; unordered_map nameMap; class tans{ public: string ac; string h; }; vector solution(vector record) { ..
2022.04.04
-
[C++, 문자열] 프로그래머스 다트게임
문제 https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 해답 stringsteam을 잘 활용하니 parsing을 쉽게 할 수 있었다. #include #include #include #include using namespace std; int solution(string dartResult) { stringstream ss(dartResult); int answer = 0; int answerList[3] = { 0, }; int strIdx = 0; for (int i = 0; i < 3; i++) { //parsing int score = 0; char bonus = 0, opt..
2022.03.31
-
[git] local git default branch를 master 에서 main으로 변경
local git default branch를 master 에서 main으로 변경하는 방법에 대해 알아보자 아래의 페이지를 참고하여 요약하였다. https://github.blog/2020-07-27-highlights-from-git-2-28 1. git version 2.28 이상 우선 자신의 git version에 대해 알아야한다. 2.28버전부터 가능하다. 나도 명령어가 먹히지 않길래 version을 보니 2.27이었다... 2.28 버전 밑이라면 아래의 명령어를 통해 업데이트하자. $ git update-git-for-windows 2. git config 설정 바꾸기 다음 아래의 명령어를 통해 defaultBranch를 main으로 변경한다. $ git config --global init.d..
2022.03.30
인기 글
-
Visual Studio 유용한 단축키 정리 (feat.자동정렬)
코딩에 관심 있는 사람이라면 한 번씩 쓸법한 유용한 비주얼 스튜디오 단축키를 정리해 보았다. 그중 내가 유용하다고 생각될만한 단축키는 강조 처리했으니 참고하면 될 것 같다. Ctrl-K, Ctrl-H : 바로가기 설정. ( 작업목록 창에서 확인 가능 ) Ctrl-K, K : 북마크 설정 / 해제 Ctrl-K, L : 북마크 모두 해제 Ctrl-K, N : 북마크 다음으로 이동 Ctrl-K, P : 북마크 이전으로 이동 Ctrl-K, C : 선택한 블록을 모두 주석 처리 Ctrl-K, U : 선택한 블록을 모두 주석 처리 해제 Ctrl-A : 전체 코드 블럭잡기 -> Ctrl-K,F : 선택한 영역 자동 코드 정렬 (이거 다시 찾다가 포스팅하는 중...) Ctrl-F3 : 현재 단어 찾기 -> F3 : 다..
2018.07.26
-
[Error, VS] "const char *" 형식의 값을 사용하여 "char *" 형식의 엔터티를 초기화할 수 없습니다.
1 char* window_name = "Threshold Demo"; cs 위와 같은 코드가 비주얼 스튜디오 2015에서는 잘 되는데 2017부터는 오류가 발생한다. 해결책은 1. 아래와 같이 const를 붙이거나 1 const char* window_name="Threshold Demo"; cs 2. 프로젝트 > 속성 > C/C++ > 언어 > 준수모드 > 아니오 로 변경해주는 방법이다. 좀 구체적으로 이유를 찾아보니 비주얼 스튜디오에는 속성에 준수모드라는게 있는데 이게 2017부터 기본적으로 "예(/permissive-)" 상태로 설정되어 있기 때문이다. 위의 준수모드를 아니오로 바꾸고 적용해주면 문제없이 실행된다.
2018.12.28
-
[C++] 공백이 포함된 문자열 입력받기(char array, string : getline)
C, C++에서 입력을 받을 때 "공백이 포함된 문자열"을 입력받는 법을 소개한다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include #include using namespace std; int main(){ //string string str; getline(cin, str); //getline(cin, str, '\n'); cout
2019.10.23
-
[C++] 2차원 Vector 예제
간단한 2차원 Vector 예제이다. 코드에 설명을 적어놓았으니 결과와 함께 참고하면 될 것 같다. code 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int num; cout num; vector nums; cout
2018.08.08
-
[Error, VS] E0077 이 선언에는 저장소 클래스 또는 형식 지정자가 없습니다.
Visual studio를 사용하다 "E0077 이 선언에는 저장소 클래스 또는 형식 지정자가 없습니다. "와 같은 오류가 발생하는 경우가 있다. 구글 신께 물어보니 코드상에서 사용하려는 클래스 또는 타입들을 컴파일러가 인식할 수 없다는 의미이다. 헤더 파일 including 문제이므로 경로 설정이 올바르게 되었는지 확인해야 할 것이다. 라고 답변을 하는데 나 같은 경우에는 헤더파일 문제가 아니었다. 원인을 파악해보니 코드를 인터넷에서 복붙 하는 경우 VS가 인식할 수 없는 특수문자가 포함되는 경우가 있다. 이 경우 오류가 나는 위쪽 코드를 Error가 없어질 때까지 지웠다가 다시 타이핑해보길 바란다.
2019.09.23
-
180709 딥러닝/머신러닝 프레임워크 6종 비교 분석
오늘은 딥러닝/머신러닝 프레임워크에 대해 알아보기로 했다.관련자료를 찾던중 좋은 자료가 있어 소개한다. 지금은 인공 지능의 시대입니다. 머신러닝 및 예측 분석은 이제 거의 모든 현대 비즈니스에 수립되고 필수적이지만 인공 지능은 해당 분야에서 가능한 규모를 확장합니다. 이것은 딥러닝이 가능하도록 만드는 것입니다. 딥러닝이 보다 복잡한 문제를 해결하고보다 정교한 작업을 수행 할 수 있다면 이를 구축하는 것이 자연스럽게 데이터 과학자 및 엔지니어에게 큰 과제가됩니다. 다행히도 복잡성이 심화된 딥러닝 솔루션을 쉽게 구축 할 수 있도록 프레임워크가 다양해지고 있습니다. 모든 프레임워크는 다른 목적으로 제작되었으며 고유한 기능을 제공합니다. 1. TensorFlow가장 인기있는 딥러닝 라이브러리 중 하나인 Tens..
2018.07.09
-
비주얼스튜디오 외부라이블러리 포함시키기
180702 저번주 금요일부터 깃헙에서 realsense 예제코드를 찾아서 실행해보려 시도중이다. 헤더파일이 포함안되어 해당 출력 파일 폴더를 찾아 속성 > c/c++ > 일반 > 추가 포함 디렉터리와 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리 에 추가 시켰으나 이번엔 링크에러가 뜬다 심각도코드설명프로젝트파일줄비표시 오류(Suppression) 상태오류LNK2019_rs2_get_librealsense_exception_type 외부 기호(참조 위치: "public: __thiscall rs2::error::error(struct rs2_error *)" (??0error@rs2@@QAE@PAUrs2_error@@@Z) 함수)에서 확인하지 못했습니다.627captureD:\project\627c..
2018.07.02
-
[C++, Trie] 프로그래머스 가사 검색 문제 풀이
https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 | 프로그래머스 programmers.co.kr 재밌는 문제이다. 이 문제로 인해 트라이 자료구조를 알게 되었다. 트라이는 문자열의 검색에 효율적인 자료구조이며 트리구조로 되어 있다. 처음에 문제를 보면 따로 트라이라는 자료구조를 공부한적 없는 분이라면 대부분 아래와 같은 해답을 떠올릴 것이다. 나 역시 그랬다. 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 32 33 34 35 36 37 38 39 40 41 42 43 #include #include using name..
2019.11.03
-
[C++, STL] std::fill 함수 사용하기 (feat. std::vector, 1차원 배열, 2차원 배열 초기화)
std::fill 1 2 template void fill (ForwardIterator first, ForwardIterator last, const T& val); cs 헤더파일에 저장되어 있다. 값으로 범위(first, last)를 채우는 역할을 하는 함수이다. 인자 (Parameters) first, last val의 값으로 채울 범위를 나타내는 반복자들 [first, last)범위에 값이 채워지게 된다. first는 포함하지만 last는 포함하지 않는다. val 범위에 채울 값 리턴값 (return value) 없다. 예제 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253..
2019.09.25
-
[C,C++] 1,2차원 배열 원소 선언, 정적 동적 전체 초기화
문제를 풀다 C와 C++의 1,2차원 배열 선언 초기화가 동적,정적에 따라서도 완전달라 포스팅을 해보려 한다. C 1차원 배열 정적,동적 초기화 C 2차원 배열 정적,동적 초기화 C++ 1차원 배열 정적,동적 초기화 C++ 2차원 배열 정적,동적 초기화 순으로 진행된다. 먼저 C 1차원 배열 정적 초기화의 경우 일반적인 배열 초기화는 다들 알걸로 생각한다. 1 2 3 4 5 6 7 //int형의 5개 배열을 초기화 int arr[5]={5,9,3,4,2}; //개수를 생략해도 무방하다. int arr[]={5,9,3,4,2}; cs 1 int arr[5]={6,} cs 이렇게 하면 모두 6으로 초기화 된다는 포스팅이 많은데 그렇지 않다. 6 0 0 0 0이렇게 될뿐이다. 한번에 초기화하는 법은 찾아서 업..
2018.08.23