본문 바로가기

소켓의 개념정리 짤막하게! 소켓을 검색 해보면 프로세스간 의 통신을 하기 위한 네트워크의 종착점이라고 설명을 한다. 220볼트 전기 전선을 사용하기 위해 멀티 어댑터 로 서로 연결 할때 그 돼지 코처럼 생긴 부분에 연결 하게 되면 A라는 지점에서 B라는 지점까지 서로 전기의 목적지가 어디인지 알게 되고 서로 전기를 흘러 보낼수 있기 때문에 기계를 사용 할 수 있다 이와 같이 소켓이라는 부분은 네트워크 적으로 서로 연결 시키기 위한 멀티 어댑터 같은 역할을 한다. 위의 그림은 소켓 통신이 이루어질 때 순서대로 나열 한 것으로 서버영역과, 클라이언트 영역 두 가지 영역이다. 예를 들어 A 라는 컴퓨터와 B 라는 컴퓨터가 서로 대화를 나눌 때 한쪽에서는 서버영역처럼 순서대로 절차를 진행하고 다른 쪽에서는 클라이언트 영역처럼 위에서 아래..
힘든 출퇴근 을 슬기롭게 대처 하는 법 필자는 파주에서 서울까지 출퇴근을 하고 있다. 9시 출근을 하기 위해서 새벽6시에 일어나서 준비를 해야 한다. 출퇴근 루트는 이렇다. 직행 좌석 버스를 타고 합정에서 내려서 2호선에서 5호선을 환승 을 하고 직장에 도착을 하게 된다. 이로 인해 짧으면 1시간 30분 길면 2시간 가량이 걸리는 거리이다. 긴 출퇴근 시간으로 인해 허리도 아프고 무엇보다 많은 사람들의 틈에 끼어서 간다는 스트레스가 많았다. 버스에서 걸리는 시간의 오차 가 많이 나고 특히 월요일 같은 경우 일찍 나왔음에도 불구 하고 지각을 하는 경우가 종종 발생 했다. 남들보다 일찍 나와서 지각을 하는게 억울 했다. 그레서 출근 할때 지하철 위주로 출퇴근 을 하게 되면 사람들이 많이 붐비는 요일 에도 시간의 오차 없이 정상 출근 을 하지 않을..
신규 개발 습득 후 원활 하게 이직 하는 방법 오랜만에 전직장 동료를 만나 식사를 하면서 최근 근황을 서로 나눴다. 그 개발자의 고민은 신규 언어를 습득해서 다른 곳으로 이직하기가 쉽지 않을거 같다는 것이다. 가령 언어를 공부했다고 해도 회사 규모의 프로젝트를 맡아서 진행하기에는 무리가 있지 않을가라는 생각이 든다는 것이다. 틀린말은 아니다. 경험 없이 학습한 내용으로 프로젝트에 뛰어 들면 고생할 가능성이 크다. 필자는 실제로 위와 같은 경험을 해본적도 있기도 했고 변경한 기술 을 다루는 프로젝트 경험을 유지 하지 않는다면 익혔던 부분이 금새 녹슬지도 모른다. 그렇게 공감의 하며 이야기를 든던중 불현듯 떠오른게 있었다. 그것은 2년넘게 꾸준히 해오고 있는 크몽 알바 였다. 크몽은 자신의 재능을 마켓에 올려서 판매 하는 서비스 이다. 자신이 가진 기술..
배움에 있어 재미있게란? 어떤 일을 새로 배울려고 할때 정해진 규칙이나 문법을 배워야 한다. 자신의 성향이 잘 맞으면 배우는데 있어 거부감이 적고 진도도 잘 나가겠지만 반대인 경우에는 답답하고 중도에 포기할 가능성이 많다. 이럴때 재미있게 생각 하면 어떨가 한다. 그 재미있게란 자신이 생각하는 논리대로 배움을 진행 하면 답답했던 가슴이 조금이나마 뚫리지 않을가 생각이 든다. 예를들어 데이터 분석을 하는 방법 에 대해 배우는 과정이라고 해보자 시간의 흐름에 따라 변하는 시계열 데이터가 있다고 과정할때 점선에 해당하는 부분을 예측 하는 문제를 풀어야 한다면 자신만의 방식으로 먼저 풀어 나가 보는 것이다. 중학교때 배웠던 y=ax+b 를 눈짐작으로 그어서 Y축과 X축에 특정값을 대입하여 a에 해당 하는 기울기를 구하고 절편 b를 구하..
MS SQL->ORACLE 트리거 변환 방법 MS SQL 로 작성된 트리거를 오라클 트리거로 변환할 때 예시를 몇자 적어 볼가 한다. [MSSQL] ⓛ CREATE TRIGGER [T_EMP_MOVE_AFTER_DELETE] ON [EMP_MOVE] AFTER DELETE, UPDATE AS BEGIN DECLARE @OLD$EMP_NO DECIMAL(19,5), @OLD$DEPT_NO DECIMAL(19,5), @OLD$EMP_NAME NVARCHAR(2), ② DECLARE CUR CURSOR FOR SELECT EMP_NO , DEPT_NO, EMP_NAME, ③ FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @OLD$EMP_NO, @OLD$DEPT_NO, @OLD$EMP_NAME WHILE @@FETCH..
Word2Vec 을 활용한 연관 키워드 뽑기 #1 전 회사 프로젝트 때 특정 카테고리 별로 키워드를 분류 하는 작업이 필요했다. 처음에는 사용자가 수동으로 키워드 분류 작업을 하는 프로그램을 개발 하게 되었고 이걸 머신러닝 알고리즘 을 이용해 자동으로 키워드 분류 가 가능 할 거 같아 제안 했었다. 여러 알고리즘 중에 눈에 띄던 Word2Vec 알고리즘을 실무에 적용 하기 까지의 좌충우돌 스토리를 쓸가 한다. " 그때 경험을 기록 으로 남겨둘려고 블로그를 쓴다. " 이때 당시에 만들었던 키워드 수동 분류 툴 방금전에 말했듯이 이건 사용자가 직접 수동으로 분류해야만 했다. (C# WinForm 에 DevExpress 를 사용해서 깔끔하게 뽑히긴 했다.) 이건 개발자로써 UI좀 만들고 CRUD 만 할 줄 알면 누구나 쉽게 만들수 있는 프로그램이라 큰 의미는..
실무에 사용 되는 오라클 커서 (CURSOR) 사용법 1) 정의 - 커서를 짧고 간략하게 설명 하면 "SQL문을 처리한 결과 집합을 가리키는 포인터이다." 이걸 약간 더 길게 설명 하면 SQL 처리 결과 를 오라클 서버 프로세스 내부의 Private SQL Area 라는 메모리 영역에 저장되는데 클라이언트 프로세스에서 포인터(커서)라 는 것이 가리키고 있다. 아래 두줄은 같은말 `` - 질의의 결과로 얻어진 여러 행이 저장된 메모리상의 위치. - 커서는 SELECT 문의 결과 집합을 처리하는데 사용된다. 아래 그림은 위에 설명을 한 장의 이미지로 설명했다. 커서의 정의에 대해서 알아 보았으니 종류에 대해서 알아 보자. 종류로는 암시적, 명시적 커서로 나뉜다. 2) 암시적 커서 : 오라클 내부에서 PL_SQL(INSERT, UPDATE, DELETE 등등.)..
오라클 테이블 반환 (PIPELINED TABLE) 함수 작성법 오라클 에서 함수(Function) 를 작성하여 반환 값으로 보통 하나의 문자나 숫자 형태로 반환할 경우가 있지만 테이블 형태로도 반환 할 수 있다. 그 테이블 형태로 반환 하는 방법을 정리해 놓았다. 1. 레코드 타입 선언 - 함수에서 반환하는 레코드의 스키마를 정의 - FUNC_MULTIVALUES 함수명 정의 --레코드 타입 선언 CREATE OR REPLACE TYPE FUNC_MULTIVALUES AS OBJECT ( AUTH_NO VARCHAR2(10) ); 2. 테이블 타입 선언 - 함수에서 반환하는 레코드의 집합(테이블) 정의 - “T_” + 함수명 (명칭 정의 임의로 해도 상관은 없다.) --테이블 타입 선언 CREATE OR REPLACE TYPE T_FUNC_MULTIVALUES AS..