어쩌다 보니 20년도부터 계속 제주도를 가게 되는 것 같다. 제주도를 갈 때마다 아쉬웠던 것은 폰 카메라의 한계였다. 이번에는 제주도 여행 간 김에 예쁜 사진을 남겨보고자 캐논 카메라를 구입하였다. 사진을 배워 본 적도 없고 구도도 모르고 찍은 거 치고는 나름 예쁜 사진들도 많이 찍힌 것 같다. 잘 찍힌 사진들도 정리해보고, 어떤 경로로 여행을 하였는지 간략히 정리해보고자 한다. 어쩌다 보니 제주도를 다녀온 건 6월이지만... 7월이 돼서야 글을 작성하게 되었다. 렌트카 제주도를 요리조리 구경하기 위해서는 렌트카는 필수인 것 같다. 승차감이나 운전의 편의보다는 요리조리 잘 돌아다닐 수 있는 `모닝 어반`을 선택하였다. 해당 업체를 예매한 것은 전차량에 블랙박스가 장착되어 있어서였다. 그리고 혼자서 차를 ..
삼성전자에 입사하고 22년 상반기가 지나가버렸다. 신입사원 프로젝트, 업무와 관련된 스터디를 진행하다 보니 시간이 빠르게 지나가버린 것 같다. 회사에서 업무를 하면서 내가 공부하고 흥미 있던 분야에서 일을 하다 보니, 업무 능률도 좋아지고 업무와 관련된 백그라운드를 빠르게 만들 수 있는 것이 좋았다. 이러한 장점들과 지금의 생각들을 간단히 정리해보고자 한다. 신입사원의 시각으로 본 삼성전자 나는 신입 공채로 입사하였지만, `중고신입`이다. 이전 직장인 안랩에서 짧은 시간이었지만 일을 하면서 회사의 한계, 조직의 성장에 따른 유연성 저하 등 회사의 관점에 대한 다양한 시각을 만들 수 있었다. 그런 관점에서 볼 때 삼성전자는 장점을 많이 가지고 있는 회사라는 생각이 들었다. OJT 컴퓨터 공학과에서 배운 지..
이전에 Docker: Basic라는 글에서 도커는 LXC와 cgroups, namespace를 통해 동작한다고 포스팅한적이 있다. 윈도우 뿐만아니라 Mac에서도 실행가능한데 어떤 식으로 동작하는지 간단히 정리해보고자 한다. Windows는 어떨까? 윈도우에서는 `cgroups`, `namespace`와 같은 기능이 존재하지 않는다. 따라서 해당 OS 환경에서 도커를 설치하게 된다면 위의 그림과 달리 `LinuxKit`을 통한 가상화 환경에서 실행하게 된다. Mac은 어떨까? 윈도우의 경우 리눅스 디렉토리와 상이한 환경을 가지고 있어, Hypervisor를 통해 lightweight Linux가 실행 중이구나라고 바로 생각을 할 수 있다. 하지만 Mac은 도커의 실행환경이 Mac의 로컬에서 동작하는 것과 ..
삼성전자 DS, DX 부문 상관없이 SW직군으로 입사하게 되면, SW Certi. Pro를 취득하여야 한다. 부문이나 팀에 따라 취득을 많이 권장하는 경우도 있어 부바부로 나뉘긴 한다. 큰 공부를 하지 않았지만, 12월에 운이 좋게 잘 풀 수 있는 유형이 나왔으나 코드 한 줄을 잘 못 작성해서 탈락 후 이리저리 수난을 겪고 공부했던 과정을 기록해보고자 한다. SW certi. Pro? 삼성의 입사 시험 난이도는 AD(Advanced)이고, 입사 후 취득이 필요한 난이도는 Pro(Professional)이다. 여러 후기들을 찾아보면 AD보다 상당히 어렵다 이지만, 공부해보면 알고리즘과 달리 `적절한 자료구조 사용과 최적화 문제라서 결이 달라질 뿐이다.` 라는 것을 느끼게 된다. (그래도 알고리즘을 공부한 ..
컴퓨터에서 괄호가 포함된 연산을 쉽게 처리하기 위해서는, 중위 표현식(Infix)보다 후위 표현식(Postfix)을 통해 계산하면 쉽게 처리할 수 있다. 이는 Stack을 통해 쉽게 구현할 수 있으며, 변환한 식을 계산하는 것은 어렵지 않다. Stack을 사용하여 구현 후위 표현식 변환 int priority(char c) { if (c == '(') return 0; else if (c == '+' || c == '-') return 1; // *, / 인 경우 return 2; } string changePostfix(string target) { stack s; string prefix; for (int i = 0; target[i]; i++) { if (target[i] == '(') s.push..
c++에서 문자열을 다루는 경우는 크게 부분문자열을 만드는 경우와 특정 구분문자(delimiter)를 기준으로 문자열을 나누는 경우이다. 어렵진 않지만, 모르면 삽질해야하니 정리해두고자 한다. substr #include #include using namespace std; string getSubStr(string s, int len) { string subStr; vector subStr; // 자를 길이 for (register int end = 1; end < len; end++) { // 자를 위치 for (register int start = 0; start < len; start++) { subStr.push_back(s.substr(start, end)); } } return subStr;..
Trie를 개념만 알고, 생각해보니 직접 구현해본 적이 없었다. 알고리즘 문제 풀이를 할 때, 요긴하게 사용하기 위한 목적으로 정리해보고자 한다. 다른 곳에서 검색할 수 있는 것과 같이 동적으로 할당하는 것이 아닌, 문제의 조건에 맞게 정적으로 Trie를 할당해두고, 사용하는 방식을 다루고자 한다. Trie? 트라이 (컴퓨팅) - 위키백과, 우리 모두의 백과사전 "A", "to", "tea", "ted", "ten", "i", "in", "inn"를 키로 둔 트라이. 이 예제에는 모든 자식 노드가 알파벳 순으로 왼쪽에서 오른쪽으로 정렬되어 있지는 않다. (루트 노드와 't' 노드) 트라이(trie)는 컴퓨터 ko.wikipedia.org Trie란 root를 기준으로 문자열을 저장할때, 각 노드에 어떤 ..
셀레니움을 통해 자동화하다 보면, 정보 수집을 위한 자동화도 있지만 티켓팅 후 특정 프로그램 실행 또는 게임 자동 실행 등 다양하게 사용될 수 있다. 그중에 제목과 같이 특정 프로그램을 여시겠습니까?라는 문구가 셀레니움 상에서는 컨트롤되지 않아 궁금해서 찾아보게 되었다. 다른 사람들도 그런지 찾아보자 Selenium Python getting around "Open .app?" I am trying to write e2e tests for a Slack bot and while logging in via browser it always asks whether I'd like to use the Slack desktop app instead of continuing with the browser (its ..