분류 전체보기

    지난 2년간의 회고

    2년간, 특히 2022년 인생 회고 개발을 시작하고부터 '연말에는 회고를 작성해야지'라고 생각하고 있었는데 항상 실천에 옮기지 못했다. 중간중간 눈팅으로만 보던 GitHub 저장소 개발자 회고 모음을 바탕으로 나도 한번 올해를 되돌아보고자 한다. 이번 포스트는 개발 위주의 회고라기보다는 개발 직군을 목표로 준비했던 나의 인생 회고 내용을 주로 이룬다. 길고 길었던 가방끈이 어쩌다 보니 호기롭게 첫 직장을 퇴사하고 나서 많은 일들이 있었다. 다니던 퇴사한 이유 중 가장 큰 편입학을 시작으로 평소 해보고 싶었던 바리스타를 꿈꾸며 카페 알바 지원은 코로나로 인해 경력직만 뽑아서 번번이 탈락했다. 이외에도 제2의 인생의 서막을 기대하며 (개발 외 다른 분야로) 이것저것 시도해보았지만, 생각보다 쉽지 않았다. 점..

    [Core C] 문자열 | String

    문자열 (String) 문자열의 정의 문자열의 사용 문자의 배열로 표현합니다. 즉, char[] 타입으로 예를 들면 다음과 같습니다. #include int main() { char name[10] = "leehyowon"; char *username; username = "corock"; printf("name: %s\n", name); printf("username: %s\n", username); return 0; } 여기서 주목할 점은 메모리 공간이 내가 저장하려고 하는 문자열의 길이 + 1만큼 저장되는 것과, 문자열의 끝에 '\0' 이라는 녀석이 들어간다는 점입니다. 공백 문자 전까지의 문자열을 배열에 저장하고 널 문자를 붙입니다. 포인터도 변수이므로 같은 자료형의 포인터를 많이 사용하는 경우 ..

    [Core C] Array | 배열

    Array (배열) 우리가 힘들게 프로그램을 만드는 이유는 많은 데이터를 빨리 처리할 수 있기 때문입니다. 단, 많은 양의 데이터를 메모리에 저장하는 방법이 필요한데 이때 배열을 사용합니다. 배열을 만들고 사용하는 방법, 또 배열이 문자열을 어떻게 저장하는지 살펴봅니다. 동일한 자료형을 저장할 저장 공간이 많이 필요한 경우 일일이 변수를 선언하는 일은 만만치 않습니다. 이때 '배열'을 사용하는데, 배열을 사용하면 많은 변수를 하나의 선언문으로 간단하게 대체할 수 있습니다. 배열을 만들고 사용하는 방법에 대해 알아보겠습니다. FIFA에서 만든 축구 게임, FIFA 21에서 홈페이지에 게시되어 있는 FIFA 21 Ratings 중 한 선수의 데이터를 통해 배열을 사용하는 방법을 알아보도록 하겠습니다. 이 중..

    [R] Java와 R 연동

    16. Java와 R 연동 16.1 Java에서 R을 호출하는 방법 rJava JRI Rserve - 설치 방법이 간단하고 웹서버에서도 사용가능 16.2 Rserve 설치 방법 16.2.1 RGui(R console)를 실행한 후 Rserve 패키지 설치(RStudio에서도 실행 가능) install.packages('Rserve',,'http://www.rforge.net/') 16.2.2 RGui에서 아래 코드를 먼저 실행한 후 자바 코드에서 호출 가능함 library(Rserve) Rserve(FALSE, port = 6311, args = '--RS-encoding utf8 --no-save --slave --encoding utf8 --internet2') Rserve(args = "--RS- ..

    git 지역 저장소에서 원격 저장소까지의 메커니즘

    작년 4월 쯤, 서브버전(Subversion)을 통해 VCS 개념을 처음 알게 되었습니다. 이후 확장된 개념으로 볼 수 있는 분산 버전 관리 시스템(DVCS) 중 가장 쿨(cool)한 Git을 사용하기 시작했습니다. 저는 IDE마다 플러그인으로도 제공을 하지만, 환경에 영향을 적게 받는 CLI(Command Line Interface)가 마음에 들어 GUI와 겸해서 사용하고 있습니다. 아래의 예시는 실제 윈도우즈 환경의 개인 컴퓨터에서 원격 저장소 역할을 하는 Github에 push하는 작업까지 한번에 볼 수 있도록 작성하였습니다. 그럼 시작해봅시다. 1. 로컬 컴퓨터에 Git 셋팅 우선 이 작업을 CLI로 하기 위해서는 Git이 설치되어 있어야 합니다. 아직 설치가 되어있지 않다면 설치 방법 가이드를 ..

    검색 엔진 최강자! 구글에 사이트맵 등록하기

    사이트맵 생성 후 그 다음은 지난 글에서 간단하게 사이트맵을 만들 수 있었습니다. 여기서 그치는 것이 아니라 검색 엔진이 알 수 있도록 사용자들이 자주 사용하는 대표적인 검색 포털 사이트에 우리의 사이트맵을 등록해주어야 합니다. 첫 번째 대상으로 전 세계 사용자들이 가장 많이 사용하는 구글(Google)에 등록해보도록 하겠습니다. 통상적으로 이런 서비스를 웹마스터도구라고 하며, 구글에서 제공하는 서비스의 정확한 명칭은 구글 서치 콘솔(Google Search Console)입니다. 그럼 시작해볼까요? 구글 서치 콘솔 도구로 이동 링크를 통해 Google Search Console 사이트로 이동합니다. 또는 검색 창에 [구글 서치 콘솔] / [Google Search Console] 등의 키워드로 들어갈 ..

    오라클 GUI, SQL Developer 설치하고 접속하기

    오라클 설치, 그 다음은? 지난 포스팅 오라클 설치, 이대로만 하자! (Oracle 11g Installation) 을 잘 따라오신 분들이라면 이제 오라클을 Windows 환경에서 사용할 수 있게 되었습니다. 하지만 실제로 우리가 데이터베이스를 사용하는 경우는 방대하고 복잡한 쿼리문이 대부분입니다. 이걸 명령 프롬포트 창에서 일일이 확인하기란 쉽지 않습니다. 물론 일부 기업에서는 SQL*Plus 를 사용하기도 합니다. 하지만 보통 Toad나 SQL Developer 같은 GUI 툴을 이용하여 데이터베이스를 다룹니다. Toad는 온전히 활용하기엔 유료 라이선스라 기회가 된다면 다뤄보기로 하고, 이번 포스팅에서는 SQL Developer를 설치하고 접속하는 방법에 대해 알아보겠습니다. 설치를 위해 오라클 사..

    블로그 검색 노출을 위한 잇템! 티스토리 사이트맵 생성하기

    사이트맵(Sitemap)이란? 사이트맵을 한마디로 정의하면 특정 웹 사이트의 페이지 목록입니다. 블로그를 예로 든다면, 다수의 글을 마치 도서 목록처럼 집약 및 집대성할 수 있고, 사이트맵 생성 프로그램 등을 통해 파일을 만들어 Google 같은 검색 포털 사이트에 등록할 수 있습니다. 당연히 등록하지 않은 것보다 사용자가 원하는 정보를 검색할 때 블로그가 노출될 확률이 높겠죠? 어렵지 않으니 사이트맵을 등록해보도록 하겠습니다. 사이트맵 파일 만들기 먼저 사이트맵 파일을 생성해야겠죠? 요새는 원하는 사이트 주소만 알려주면 자동으로 만들어주는 솔루션이 많이 있습니다. 그중 Check-Domains 사이트에서 제공하는 XML Sitemap Generator를 통해 파일을 만들어 보겠습니다. 여기를 클릭하면 ..

    Rod Stewart - Sailing

    Sailing Rod Stewart I am sailing, I am sailing 나는 항해를 해요, 나는 항해합니다 Home again, cross the sea 바다건너 고향으로 I am sailing stormy water 거친 바다를 가르며 항해합니다 To be near you, to be free 그대 곁을 향해서, 자유를 향해서 I am flying, I am flying 나는 날아갑니다. 하늘 높이 날아갑니다 Like a bird, cross the sky 창공을 가르는 새처럼 I am flying passing high clouds 높은 구름을 스치고 날아오릅니다 To be with you, to be free 그대와 함께, 자유와 함께 Can you hear me? Can you hea..

    [R] SVM(Support Vector Machines)

    13. SVM(Support Vector Machines) 13.1 개요 13.1.1 예측 기법 Boser, Guyon 및 Vapnik에 의해 1992년 제안된 이후, 1990년대 후반부터 현재까지 학계와 업계(주로 미국 및 유럽 선진국)에서 활발하게 활용되고 있는 예측 기법 13.1.2 기계학습의 분야 기계학습의 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도학습 모델 13.1.3 용도 주로 분류와 회귀 분석을 위해 사용됨 13.1.4 알고리즘 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때 새로운 데이터가 어느 카테고리에 속할지 판단하는 기준으로 가장 큰 폭을 가진 경계를 찾는 알고리즘 직선 B1과 B2 모두 두 범주를 잘 분류하고 있음 B2보다는 B1이 두 범주를 여유있게 분류하고..

    [33-js-concepts] 24. 컬렉션과 생성기 (Collections and Generators)

    컬렉션과 생성기 (Collections and Generators) Iterable vs Iterator Iterable과 Iterator 모두 ES5에서 추가된 새로운 규약(protocol)이다. Iterable 반복 가능한 객체들을 말한다. 프로퍼티로 Symbol.iterator를 반드시 가져야 Iterable한 객체로 정의될 수 있다. Array나 Map 같은 컬렉션들은 기본적으로 Iterable한 객체로 설정되어 있으며 일반 Object는 가지고 있지 않다. String 같은 빌트인 객체도 Iterable한 객체로 설정되어 있다. Iterable한 객체들은 아래와 같은 연산이 가능하다. for..of 구문을 통한 객체 접근 ( for child of someIterableObj ) Spread 연..

    [33-js-concepts] 21. 클로저 (Closures)

    클로저가 뭐야? 함수와 함수가 선언된 어휘적 환경의 조합입니다. 함수 밖에서 선언된 변수를 함수 내부에서 사용할 때 클로저가 생성됩니다. function outer() { const name = 'leehyowon'; function inner() { console.log(name); } return inner; } const innerFunc = outer(); innerFunc(); 이제 var innerFunc = outer()를 통해서 inner 함수를 반환받게 되는데, 일반적으로 함수가 종료되면 메모리에서 소멸하기 때문에 아래와 같은 모습을 하게됩니다. 때문에 일반적으로, innerFunc를 호출해도 name에 대한 참조는 메모리에서 소멸하여 호출이 불가하게 됩니다. 하지만 클로저는 이러한(외부..