반응형

과거 처음으로 딥러닝 관련 프로젝트가 상표와 디자인에서 유사 이미지 검색 시스템을 만드는 것이었다.

2019년 특허청에서 발주한 프로젝트였고, 당시 새로 시도하는 것이었기에 서로 안하려고 했던 프로젝트였다. 나는 TensorFlow와 keras를  처음으로 공부했는데, CNN 에 대해서는 과거 대학원 시절에 익숙한 연산들이었기에 이해하는데 어려움은 없었다.

당시 딥러닝 쪽 포럼등은 주로 딥러닝 망의 내부에서 무슨일이 벌어지고 있는지를 관찰을 한참 하던 시기였다. 즉, 당시 레이어에서 무슨일이 벌어지는지 이해하는 사람이 적었던 시절이다. 다만, 영상처리 공부를 해본 사람 입장에서는 CNN이 여러 콘볼루션 연산을 통해서 사실상 미분 등 픽셀에 대해 다양한 연산이 벌어지고 있고, 다양한 detector 알고리즘을 경험해봤다면, 내부에서는 필셀간 연산을 통해서 검출하려 한다는 것도 어느 정도 이해가 될 것이다.

이때 컴퓨터 비전을 처음 접한 사람들은 CNN이 블랙박스로 생각을 하겠지만, 사실 전통적으로 사람이 직접 설계하던 검출기를 딥러닝 방식으로 통해 자동으로 형성하게 설계하도록 구조를 변경한 것 뿐이다. 그러니 다층 더 깊은 층을 만들 수 록 더 다양한 연산을 해볼 수 있으니 품질이 높게 나오는 것은 당연한 것이다. 사람으로 치면 생각을 더 많이 해본다는 뜻이 되니까 말이다.

아무튼 vector DB가 등장한 사실은 2024년 초에 알게 되었다. 아마 2023년에 등장한 것으로 보이지만, 구성이라던거 설명한 것을 보면 2019년에 내가 직접 구현한 유사 이미지 검색 시스템과 거의 같다. 다만 설명부분에서 문제가 있는지 COS distance 에 대해서 각도로 이해하는 분들이 유튜브에 종종 보이더라. 임베디드 레이어에서 COS Distance의 의미는 다차원 벡터에서 동일 성분간 얼마나 유사한지를 판단하는 연산이 된다. 3차원으로 차원을 낮춰서 생각하면 이해가 쉬울 것이다.

근데, 이게 무리도 아닌게 당시 박사님들과 싸우면서 해당 시스템을 완성했는데, 설명을 해도 이해를 못 하셨었었다. 그래서 이 프로젝트가 여러모로 어려웠기 때문에 기억에 남는다. 그리고 이 프로젝트 이후 같이 참여 했던 교수님의 경우 이 때 기억에서 인상이 깊었는지 AI 회사에 실장으로 오라는 제의를 해주시기도 했는데, 지금은 그 때 갈껄 하고 후회하는 중이다.

해당 시스템은 국내에 특허로 내었는데, 당시 PM 맡으신 대표님이 내 이름은 빼놓아서 2개월전에 요청을 해서 추가하기로 합의를 보았다. 다시 이러한 딥러닝 분야를 연구하고 싶은데, 정작 비슷한 연구하는 곳에서는 해당분야 3년이 안되서 인지 면접도 못 가고 서류 탈락이 되고 있다. 그 동안 너무 다양한 분야를 한 것이 문제가 된 것 같다.

반응형
반응형

과거에는 내용 정리할 수 있는 수단이 블로그 등 별로 없었지만 one note, notion 등 다양한 기록과 정리 수단이 생기면서 부터 블로그를 잘 사용하지 않게 된 것 같다. 특히나 자체 제작한 블로그가 아니라 기존 서비스를 사용하다 보니 기존에 기록한 내용들을 다시 검색하는 것이 어려운 것도 한 몫 한 것 같다.

문제는 지식과 경력이 누적 되고 나서 남에게 내가 가지고 있는 수준을 어필 할 수 있는 수단은 결국 블로그라는 것이다. 카카오 같은 국내에서 영향력이 큰 기업에서 신입 개발자 채용을 할 경우 블로그도 하나의 참조 자료로 한다고 공개적으로 발언이 되었으니 블로그를 관리하는 신입 개발자가 앞으로도 많이 늘어나리라 본다.

물론 신입 개발자가 아닌 경력 개발자는 부담이 덜하지만 분야에 따라서 필요하다 그리고 보통 서버 분야 백엔드 개발자들 중 인지도 있는 개발자의 경우 유튜브나 블로그 등 하나 정도는 꾸준히 운영하고 있는 경우가 많다.

다만, 2022년경 부터인가? 대 개발자 전성 시대였다. 이때 개발자 지망하거나 전향을 희망하는 사람들이 많아지고 동시에 개발 관련된 블로그가 많이 생긴 듯하다. 덕분에 가끔 기억이 안나서 검색을 하게 될 경우 잘 못 이해하고 기록되어 있는 블로그를 종종 자주 보게 된다.

예를 들어 프로그램내에서 예외 처리가 되는 원리는 예외가 발생하면 해당 에러 클래스를 catch 해주는 코드 블럭이 나올때까지 상위 코드 블럭으로 강제로 벗어나면서 최종적으로 더 이상 벗어날 코드 블럭이 없다면, OS 혹은 가상머신 단에서 강제로 프로그램을 종료 시킨다. 이것이 흔히 말하는 "프로그램이 죽는다"라는 표현한다. 이는 시스템에 문제가 생기기 전에 해당 프로그램을 강제로 종료 시키는 최악의 상황에서는 최선 방법이기 때문이다.

이전 1년 정도 지난 신입이 예외 처리를 이상하게 해서 어떻게 동작하는지를 물어보니 코드 블럭을 벗어나는 것에 대해서 잘 모르더라...
그리고 그렇게 설계한 이유도 설명하지 못 했다. 그래서 추궁 아닌 추궁을 해보자 자신이 검색해서 참조한 블로그에 그렇게 적혀 있다더라 하고 말한다.

물론 블로그 작성자도 억울 할 수 있다. 파이썬으로 프로그래밍을 시작하는 경우 아무래도 쉽게 설명하는 것에 대해 집중 되어 있다 보니 자세한 설명이 부족한 경우가 많고 또 설명이 있다 하더라도 쉽게 결과를 볼 수 있는 언어이다 보니 자세히 안보고 지나치는 경우들이 있는 것 같다.

아무튼 다시 원점으로 돌아와서 나는 그 동안 하나의 기록 수단으로 생각해왔다. 신입 시절 열심히 블로그에 기록하다가 기록 수단이 바뀌고 나서 한동안 작성을 하지 않았는 데, 돌고 돌아서 민감한 정보를 제외하고 다시 블로그에 정리해야 겠다는 생각이 든다.

반응형
반응형

URI, URL 의미

작성 배경

한동안 생각을 안하면, 개념을 잊어버려서 작성을 해 놓는다.

이해한 의미

자연스럽게 URI와 URL을 혼용하여 사용하고 있는데, 이 둘은 정확히는 약자도 다른 용어이다.

URI는 Uniform Resource Identifier 로 웹 페이지 주소와 같은 개념인데 반해 URL은 Uniform Resource Locator 의 약어로 웹 페이지의 주소에서 자원의 위치까지를 지칭한다.

참조

반응형
반응형

코드 뷰 : 문법 하이라이트(syntax highlight)

적게된 배경

 syntaxhighlighter라는 대중적인 툴을 기존에 사용하고 있었다. 그러나 비주류 언어를 종종사용하는 나에게는 지원되는 언어가 너무나 부족했다. 특히 최근에는 업데이트가 뜸하니 새로 생길 가능성은 낮은 상황이다.


 물론 자작으로 추가를 해도 괜찮으나, 현재 하는 프로젝트들이 웹쪽이 아니다 보니 추가하기에는 부담이 되었다. 때문에 다양한 언어가 지원이 되는 highlight.js를 대안책을 사용하게 되었다.\


 다만, 라이브러리 변경으로 기존 글을 수정하는데 많은 시간이 걸렸다. 일괄로 바꿀 수 있는 방법이 있다면 좋을 것 같다. 하지만, 기존에 표기가 안되던 typescript나 cmake 같은 언어도 정식으로 표기가 되어서 그만한 가치가 있다는 생각이 든다.


참고자료

syntaxhighlighter

공식(영문)

관련 블로그(티스토리에 적용방법)


highlight.js

공식

관련 블로그(티스토리 적용방법)




반응형
반응형

구형 PC 서버 부팅시 키보드나 마우스 인식 경고

구체적인 증상

 오래된 PC중에 키보드나 마우스가 없는 경우 부팅중에 경고 메시지를 보내면서 부팅이 중단되는 경우가 있다. 이게 일반 PC일 경우 항상 마우스와 키보드가 연결 되어 있기 때문에 문제가 없지만, 서버로 사용할 경우에는 주로 원격으로 관리 한다. 때문에 이런 경우 초기 운영체제 설치외에는 보통 키보드나 마우스를 연결을 안하게 되는데, 여기서 부터 문제가 된다.


 전원을 켜거나 재부팅을 하면, OS가 실행되기 전에 경고 메시지에서 걸리게 되는 것이다(여기서 바이오스(BIOS) 문제인걸 직감했다). 그래서 원격으로 리부트를 하면, 구형 PC 앞에 가서 키보드를 한번 두드리거나 안쓰는 키보드나 마우스를 꼿아 놔야 한다. 이게 상당히 보기 흉하거나 귀찮다.


문제 해결하기

 구글링을 해본 결과 과거 우분투 커뮤니티에 비슷한 증상에 대해서 언급을 하였었는데, 당시 바이오스 클리어(초기화)를 해서 해결하였다고 기록되어 있었다. #원본 글


 이 글을 믿고 바이오스 초기화를 했으나 내가 가진 구형 PC의 기본 설정은 키보드나 마우스가 없으면, 부팅에 일시정지가 걸리는 상태였다. 이제 바이오스 문제인걸 알았으니 바이오스 설정에 대한 자료를 찾다가 halt on에서 no error로 하면 키보드 검사를 안해서 부팅 속도가 빨라진다고 써있는 걸 힌트로 얻어서 추가로 찾아보니 장비에 관한 설정이다. 각 바이오스마다 차이는 있겠으니 항목별로 찾아보면 되는데, 이 글을 보게 되면, 분명 앞의 증상일테니 "halt on ~" 으로 된것이 있을 것이다.


 다만, 바이오스가 버그가 있는 건지 장비별로 disable이 아니라 enable로 해놔야 해당 장비가 없어도 무시하고 부팅을 진행한다(설마 영어권의 Yes, I do 와 No, I do의 차이인가??)


 덤으로 플로피 디스크 설정은 상관이 없었더라... 근데 요즘 어린이 여러분들은 플로피 디스크가 뭔지 모르겠지?..


참고자료

우분투 커뮤니티: 비슷한 증상 사례: 바이오스 초기화 방법

블로그: 시모스에 대한 설명

블로그: halt on에 대한 설명


반응형

'잡소리' 카테고리의 다른 글

URI, URL 의미  (0) 2020.11.10
코드 뷰 : 문법 하이라이트(syntax highlight)  (0) 2018.02.19
Mac OS X 패키지 관리자 Homebrew  (0) 2017.03.15
Mac OS X: 악성 앱 메모  (0) 2017.03.08
성격유형 검사  (0) 2017.01.02
반응형

Mac OS X 패키지 관리자 Homebrew

윈도우 운영체제를 제외한 유닉스계열 운영체제의 특징은 터미널에서 커맨드 라인으로 패키지를 관리하는 툴이 존재한다. 데비안 리눅스의 경우 apt-get을 사용하는데, Mac OS X 에서도 이와 같이 homebrew라는 패키지 관리자가 있다.


설치방법

설치방법은 터미널 창을 열고 아래의 명령어를 입력하면된다. 일일히 입력하기 귀찮은 사람은 복사하여 붙여넣어서 실행을 하면된다. 복사하기 힘들다면, 공식 웹페이지에도 똑같이 커맨드라인을 복사할 수 있으니 공식홈페이지에서 커맨드라인을 복사해도 된다.


/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
 


공식 웹페이지(한글 ): Homebrew


간단한 사용방법

이름은 홈브로(Homebrew)이지만, 명령어는 brew만 입력하여 사용한다. 커맨드라인류 프로로그램들이 그렇듯이 먼저 간단하게 brew라고 입력하여 엔터를 누르면 사용방법과 옵션에 대해서 간단하게 설명을 확인할 수 있다. 자세한 사용법을 알고 싶다면, 역시 공식 웹페이지에서 문서(Document) 항목을 찾아보면 된다.


패키지 검색(search)

tomcat을 설치하고 싶은 경우 다음과 같이 입력을 하면 된다.

brew search tomcat

search 뒤에 있는 텍스트 이름이 들어있는 패키지를 검색하여 보여준다. 만약 search뒤에 아무것도 입력하지 않는다면, 수많은 패키지가 검색되는 것을 확인할 수 있다. 또한 자신이 과거에 설치했던 패키지라면 뒤에 체크가 되어 있는 것을 확인할 수 있다.


패키지 설치(install)

앞에서 검색한 톰캣8.0(tomcat8.0)을 설치하고 싶은 경우 다음과 같이 install 뒤에 정확하게 패키지 명을 입력해야 한다.

brew install tomcat@8.0

설치를 시작하기 전에 해당 패키지을 올린 사람이 작성한 안내문 만큼의 안내(?)를 받으며 설치를 할 수 있다.


설치된 패키지 확인(list)

현재 자신의 Mac에 Homebrew로 설치된 패키지를 확인할 때 사용된다.

brew list


반응형

'잡소리' 카테고리의 다른 글

URI, URL 의미  (0) 2020.11.10
코드 뷰 : 문법 하이라이트(syntax highlight)  (0) 2018.02.19
구형 PC 서버 부팅시 키보드나 마우스 인식 경고  (0) 2017.04.27
Mac OS X: 악성 앱 메모  (0) 2017.03.08
성격유형 검사  (0) 2017.01.02
반응형

Mac OS X: 악성 앱 메모

만약 악성프로그램이 아닐 경우 댓글이나 의견을 주시기 바랍니다. 해당 글은 지속적으로 수정합니다.


Mac Keeper(맥 키퍼)

 애플(Apple)사에서 만든것처럼 보이지만, 실제로는 전혀 상관없는 기업에서 만들었다. 무엇보다 가장 거슬리는 문제는 삭제가 쉽지 않다. 삭제를 해도 브라우저에서 지속적으로 뜨며, 완전히 삭제하기 위해서는 여기저기 숨겨놓은 파일둘을 삭제해야 한다.


Adobe Flash Player Updeate(어도비 플레시 플레이어 업데이트)

 실제 Adobe에서 지원하지 않는 것으로 생각된다. 국내 웹 환경보다는 주로 미국 웹에서 Adobe Flash player 업데이트를 요구하는 광고가 상단에 생기는데, 업데이트를 하면 하라는 업데이트는 안되고 위의 맥키퍼를 포함한 알수없는 애드웨어가 마구 설치된다.


MPlayerX(엠 플레이어 엑스)

 구글에 "OS X 동영상 플레이어"등의 키워드를 쳐보면 상위 동영상 플레이어 블로그 등에서 소개하는 앱중 하나이다. 과거에는 많이 사용되었는지 모르지만, 현재는 작동이 안되며, 엄한곳에서 다운로드를 받을 경우 알수 없는 삭제가 어려운 프로그램이 설치되는 경험을 할 수 있다. 다행히 앱 자체 삭제는 어렵지 않다. 심지어 악성코드의 통로로 사용되 있다는 기사도 찾아 볼 수 있다. 아마도 개발자가 요즘에 일을 안하는가 보다.



반응형
반응형

성격유형 검사

아래의 웹페이지에서 검사를 할 수 있다. 12분내외로 답을 해야 하며, 약100여문항이 있다. 유형에 대해서 답변 기준으로 추론하는 것이지 반드시 정확하다 볼 수 없으니 참고수준으로만 하자!


https://www.16personalities.com/ko

반응형

+ Recent posts