본문 바로가기

전체 글245

뭔가 끄적거리고 싶은데 뭔가 소재도 없고.. 일에 치이고 시간에 치이다 보니 글에 써야 할 에너지도 모자라고.. 컴퓨터로 하루종일 일하다가 다시 컴퓨터 앞에 앉으면 현타도 오고?ㅎㅎ 하지만 뭔가 끄적거리고 싶고. 포스팅을 누르기 전엔 무서운 이야기 경험담 연재라도 해볼까, 독후감을 써볼까, 그동안 찍어둔 사진을 업로드하면서 소개를 해볼까 많은 고민을 하다가 제풀에 지쳐 결국 아무것도 안 하는 나. 2023. 7. 27.
하프문 베타 20 하이큐브에서 키우고 있는 하프문 베타. 물이 누런 것은 알몬드 잎 때문.. 어항 구성 알몬드 잎 : 쿠팡 "모비딕 알몬드 잎" 검색 자동 급여기 : 네이버 쇼핑 "아리스 급여기" 검색 베타 터널 : 네이버 쇼핑 "베타 터널" 검색 하프문 베타 : 의정부 한일수족관 2022. 9. 18.
[C/C++] C++ sqlite3 wrapper class sqlite3을 활용하는 C++ wrapper class를 남긴다. 매번 sqlite 함수를 사용하여 코드를 짜는건 너무 귀찮기 때문.. 소스코드: class_database.cpp #include "class_database.h" // Class: SQLHandler, 데이터베이스 관리 SQLHandler::SQLHandler(string _filename) { this->sql_handle = NULL; this->open(_filename); return ; } SQLHandler::~SQLHandler(void) { return ; } bool SQLHandler::open(string _filename) { if( sqlite3_open(_filename.c_str(), &this->sql_ha.. 2022. 3. 23.
[C/C++] C++ string replace_all replace_all string find와 replace를 조합하여 replace_all 기능을 구현한다. 역시 기록용으로 정리한다. 소스코드 #include string replace_all(string &_str, const string& _from, const string& _to) { size_t start_pos = 0; while( (start_pos = _str.find(_from, start_pos)) != std::string::npos ) { _str.replace(start_pos, _from.length(), _to); start_pos += _to.length(); } return _str; } 출처: https://hashcode.co.kr/questions/239/%EC%8A.. 2022. 3. 23.
[C/C++] C++ string ltrim, rtrim, trim ltrim, rtrim, trim C++11 환경에서 작업을 하는데 trim 기능이 없어서.. :( 직접 만들기는 귀찮고 찾다보니 스택오버플로우 댓글 중에 깔끔하게 구현한 코드가 있어서 기록용으로 정리해본다. 소스코드 #include #include #include string ltrim(string _s) { _s.erase(_s.begin(), find_if(_s.begin(), _s.end(), not1(ptr_fun(isspace)))); return _s; } string rtrim(string _s) { _s.erase(find_if(_s.rbegin(), _s.rend(), not1(ptr_fun(isspace))).base(), _s.end()); return _s; } string tri.. 2022. 3. 23.
[PHP] 변수명으로 함수 호출 / function_exists() 변수명으로 함수 호출 PHP 개발을 하다보면 함수명을 동적으로 호출해야할 때가 있는다. 생각보다 간단하므로 아래 소스코드를 참고 하면된다. 소스코드 - test(), test2() 두개의 함수를 생성하고 변수에 함수명을 입력한다. 1. function_exists() 를 이용하여 해당 문자열과 동일한 함수가 있는지 확인한다. 2. 해당 문자열과 동일한 함수가 존재한다면 변수에 () 기호를 붙여 함수를 호출하여 동작하는지 확인한다. 3. 해당 문자열과 동일한 함수가 없다면 예외 처리를 한다. 결과 test test2 test3 - function not found 변수와 동일한 함수가 실행되는 것을 확인할 수 있다. 즉 함수 call point 를 꼭 fixed하지 않고 상황에 따라서 가변적으로 함수를 c.. 2022. 3. 4.
[PHP] URI '/'(slash) 중복 처리 / preg_replace, 정규식 URI '/'(slash) 중복 처리 URI를 처리하다보면 또는 문자열 처리를 하다보면 '/' (slash)를 사용자(또는 동료 개발자)가 중복으로 입력하는 경우가 종종 생긴다. 실수 또는 string merge 등등의 경우에 경로 끝에 / 처리하고 붙이는 string 선두에 / 이 있다던지.. 어쨌든 중복된 / 를 정규식을 이용하여 없애려고 한다. 소스코드 결과 string(23) "//api////device//status" string(18) "/api/device/status" 정규패턴에서 나타내는 #//+# 은 # : escape character 를 있는 그대로 사용한다 라는 의미. /를 \/ 이렇게 표현하지 않아도 되도록.. + : multiple 이란 의미, {//, }과 같고 //, //.. 2022. 3. 4.
[PHP] nested JSON key 추출 / 재귀함수 활용, recursive call nested JSON 변환 PHP에서 재귀 함수를 이용해 nested 구조의 key들을 /로 구분 짓는 URI string으로 변환하는 예제이다. 이 또한 Restful API 구현에 필요한 기능의 일부이니 활용 가능한 환경이라면 도움이 되길 바란다. 이전에 python 으로 작성한 변환 방식과 유사하니 참고. https://muabow.tistory.com/327 [PYTHON] nested JSON 변환 / comparing two nested JSON nested JSON 변환 예제 1. 재귀를 이용해 nested 구조의 key들을 flat 하게 만들어서 dictionary에 key/value 로 저장을 하는 예제이다. 소스코드 """ # JSON data format { "Key_A": "A", .. 2022. 3. 3.