yeolco의 등록된 링크

 yeolco로 등록된 티스토리 포스트 수는 115건입니다.

C# 기초다지기 - 상속

안녕하세요 열코입니다. 이번시간에는 C# 상속에 대해 알아보도록하겠습니다. 상속은 객체지향 프로그래밍에서 가장 중요한 개념으로, 클래스를 다른 클래스로 정의할 수 있으며 프로그램을 쉽게 만들고 유지관리..

C# 기초다지기 - 클래스

안녕하세요 열코입니다. 이번시간에는 C# 클래스에 대해 알아보겠습니다. 클래스는 구조체와 비슷한 사용자 정의 자료형이지만 메소드(함수)를 가질 수 있습니다. 객체(Object)는 클래스의 인스턴스입니다. 클래스..

C# 기초다지기 - 구조체

안녕하세요 열코입니다. 이번시간에는 C# 구조체(Struct)에 대해 알아보도록 하겠습니다. - 구조체란? 구조체는 사용자 정의 데이터 유형(Data Type)으로 int, double 등과 같은 기본적으로 제공되는 변수 유형이..

C# 기초다지기 - 문자열

안녕하세요 열코입니다. 이번 시간에는 C# 프로그래밍의 문자열에 대해 알아보도록 하겠습니다. C#에서는 다른 언어에서와 마찬가지로 문자열을 문자배열(char[])로 사용할 수 있습니다. 하지만 C#에서 기본 제공..

C# 기초다지기 - 배열

안녕하세요 열코입니다. 이번 시간에는 C# 프로그램에서 배열 사용법에 대해 알아보도록 하겠습니다. 1. 배열이란 - 배열은 동일한 데이터 유형(Type)의 순차적인 모음을 의미합니다. - num1, num2, ... num99 와..

C# 기초다지기 - 상수

안녕하세요 열코입니다. 이번시간에는 C# 프로그램에서 상수에 대한 사용법에 대해 알아보도록 하겠습니다. 1. 상수란? - 상수란 프로그램이 실행 중 변경되지 않는 고정된 값을 말합니다. (이러한 고정 값을 컴퓨..

C# 기초다지기 - 캡슐화

안녕하세요 열코입니다. 이번시간에는 캡슐화에 대해 알아볼건데요. 캡슐화는 객체 지향프로그래밍의 중요한 기능중 하나입니다. 캡슐화란 물리적, 논리적 패키지내에 하나이상의 항목을 포함하는 프로세스라고 정..

C# 기초다지기 - 프로그램 구조

안녕하세요 열코입니다. 이번시간에는 C# 프로그램의 구조에 대해 살펴보도록 하겠습니다. C# 프로그램은 다음 부분으로 구성됩니다. 네임 스페이스 선언 클래스 클래스 메소드 클래스 속성 메인 메소드 명령문과..

C# 기초다지기 - 변수

안녕하세요 열코입니다. 이번 시간에는 C# 프로그래밍 변수에 대해 알아보도록 하겠습니다. 변수는 프로그램에서 조작 할 수 있는 저장 영역에 주어진 이름을 말합니다. C#의 각 변수에는 특정 유형이 있습니다...

Object 클래스에 대해

안녕하세요 열코입니다. 이번시간에는 자바의 Object 클래스에 대해 알아보도록 하겠습니다. 일전에 Object 클래스에대해 언급했던적이 있는데, 자바의 모든 요소들은 클래스로 정의되어있으며, 직접 또는 간접적..

자바 표준 입력 클래스 Scanner 사용법

안녕하세요 열코입니다. 이번 시간에는 자바의 기본 입력 클래스인 스캐너(Scanner) 클래스에 대해 알아보도록 하겠습니다. 자바의 스캐너 클래스는 java.util 패키지 내에 존재하는 클래스로, 정수(int), 실수(do..

C 정적(static) 변수

안녕하세요 열코입니다. 이번시간에는 C언어에서의 정적(static) 변수(variable)에 대해 알아보도록 하겠습니다. C언어에서 기본적인 변수는 동적(dynamic)변수로써 변수 선언과 동시에 메모리에 할당되며 변수 사..

C 변수 선언 및 키워드

안녕하세요 열코입니다. 이번 시간에는 C언어 변수 선언 및 키워드에 대해 알아보겠습니다. 변수(variable)란 메모리에 할당된 기억장소를 일컫는말이며 기본적으로 어떤 형태의 데이터를 저장하는데 사용됩니다...

C 표준 입력 함수 scanf

안녕하세요 열코입니다. 저번 시간에 C언어 표준 출력 함수인 printf() 함수에 대해 알아봤는데요. 이번 시간에는 C언어 표준 입력 함수인 scanf() 함수에 대해 알아보겠습니다. scanf() 함수 역시 printf()와 같..

C 표준 출력 함수 printf()

안녕하세요 열코입니다. 이번 시간에는 C언어 표준 출력 함수인 printf() 함수에 대해 알아보겠습니다. printf() 함수는 stdio.h 헤더파일에 정의되어 있으며, 사용하기 위해서는 1 #include <stdio.h> cs 코드를..

프로그래밍 언어별 정리

지속해서 업데이트 됩니다. (11/08) ctrl + d를 눌러 북마크를 추가할 수 있습니다. 모든 질문은 커뮤니티 Q&A 게시판에서 받습니다. 세모지 <- 바로가기 C/C++ 변수 선언 및 키워드(Naming Rule) 표준 출력(print..

C++ 가상 함수(Virtual Function)

안녕하세요 열코입니다. 이번 시간에는 C++ 클래스의 가상 함수(Virtual Function)에 대해 알아보도록 하겠습니다. 가상 함수는 기본 클래스(상속되지 않은 클래스) 내에서 선언되어 파생 클래스에 의해 재정의되..

워드프레스 kboard rss 문제

워드프레스에서 kboard 플러그인을 사용하면 rss를 제출하기 위해 다음과 같은 주소를 사용합니다. 홈페이지주소/wp-content/plugins/kboard/rss.php 하지만 어떤 테마와 플러그인과의 충돌 때문에 다음과 같은 오..

자바 상속

안녕하세요 열코입니다. 상속은 객체지향 프로그래밍의 중요한 기능중 하나입니다. 주요 용어 - Super Class : 기능이 상속 된 클래스 (기본, 상위 클래스) - Sub Class : 다른 클래스를 상속하는 클래스(파생, 하..

자바 싱글톤 클래스(Singleton class)

안녕하세요 열코입니다. 이번시간에는 자바에서의 싱글톤 클래스에 대해 알아보도록 하겠습니다. ☞ 싱글톤 클래스란 객체지향 프로그래밍에서 싱글톤 클래스는 한번에 하나의 객체(Instance)만 가질 수 있는 클래..

자바 Wrapper Class

안녕하세요 열코입니다. 이번 시간에는 자바의 래퍼(Wrapper) 클래스에 대해 알아보도록 하겠습니다. ☞ 래퍼 클래스란 래퍼(Wrapper) 클래스는 기본 자료형(Data Type)을 래핑하거나 포함하는 클래스입니다. 여기..

개발자 Q&A 커뮤니티 추천 - 세모지(세상의 모든 지식)

안녕하세요 열코입니다. 이번에 컴퓨터 프로그래밍 관련 괜찮은 커뮤니티가 있어 소개해드리려고 합니다. 사이트 이름은 '세상의 모든 지식'이며 줄여서 세모지 라고 하네요 ㅎㅎ 세모지 - http://semog.co.kr 커..

C++ 연산자 오버로딩

안녕하세요 열코입니다. 저번시간에 함수 오버로딩에 대해 알아보았는데요. 이번시간에는 연산자 오버로딩에 대해 알아보도록 하겠습니다. ☞ 연산자 오버로딩이란 기존의 제공하고 있는 연산자를 재정의하여 사용..

C++ 함수 오버로딩

안녕하세요 열코입니다. 이번시간에는 C++ 에서 함수 오버로딩에 대해 알아보겠습니다. ☞ 함수 오버로딩이란? 같은 함수의 이름을 가지고 있지만 파라미터(매개변수) 및 리턴 타입 등의 특징이 다른 여러개의 함..

C/C++ 메모리 동적할당

안녕하세요 열코입니다. 이번시간에는 C/C++에서의 메모리 동적할당에 대해 알아보도록 하겠습니다. ☞ 메모리 동적 할당이란? C/C++에서 실행 시간동안 사용할 메모리 공간을 할당하는 것을 말합니다. 메모리 공..

C++ friend 클래스와 함수

안녕하세요 열코입니다. 저번시간에 C++ 클래스와 접근제한자에 대해 알아보았는데요. 이번에는 저번시간 protected 제한자 부분에서 언급했던 friend(친구) 클래스와 함수에 대해 알아보겠습니다. ☞ freind 클래..

C++ 클래스 접근제한자

안녕하세요 열코입니다. 지난시간에 C++ 클래스에 대해 배워보았습니다. (공부하러가기) 클래스 멤버 선언 시 지정해 줄 수 있는 접근 제한자에 대해 기본적인 것만 짚고 넘어갔는데요. 3가지 접근 제한자가 존재..

C++ 클래스와 객체

안녕하세요 열코입니다. 저번 시간에 C/C++ 구조체에 대해 알아보았습니다. (구조체 공부하러가기) 이번시간에는 구조체와 비슷한 형태의 구조를 가진 클래스에 대해 알아보겠습니다. (여담으로 C++이 세상에 나오..

C/C++ 구조체 사용법 및 예제

안녕하세요 열코입니다. 이번시간에는 C/C++에서 구조체의 사용법과 간단한 예제에 대해 알아보도록 하겠습니다. ☞ 구조체란? 구조체는 C/C++에서 사용자 정의 데이터 형식입니다. 구조체는 다른 유형의 항목들을..

안드로이드 블루투스 통신 예제 소스 코드

안녕하세요 열코입니다. 이번에 블루투스 프로그램 개발 도중 백업 파일을 업로드합니다. 연결 및 통신 코드 첨부되어있습니다. 참고하시기바랍니다. activity_main.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1..

파이썬 파일 입출력

안녕하세요 열코입니다. 저번시간에 C/C++과 자바에서 파일처리에 대해 알아보았습니다. 이번에는 파이썬에서의 파일 입출력에 대해 살펴볼텐데요. C/C++에 비해 자바가 조금 더 쉽고 편한것 보다 C/C++, 자바보다..

C/C++ 배열 사용법

안녕하세요 열코입니다. 이번시간에는 C/C++에서 배열의 사용법에 대해 알아보겠습니다. 컴퓨터 공학에서 배열(array)이란 번호(index)와 그에 대응하는 데이터들로 이루어진 자료구조를 뜻합니다. 일반적으로 배..

자바 파일 입출력

안녕하세요 열코입니다. 이번 시간에는 자바에서 파일 처리하는 방법에 대해 알아보겠습니다. 자바에서 파일 입출력을 하기 위해서 사용되는 클래스는 여러가지가 있는데요 그 종류에는 입력에 대한 클래스가 다음..

HTML에 CSS 적용하기

안녕하세요 열코입니다. 이번시간에는 CSS를 HTML에 적용하는 방법에 대해 알아보겠습니다. ☞ CSS란? 종속형 시트라고 불리며 Cascading Style Sheet의 줄임말입니다. HTML이 뼈대면 CSS는 이 뼈대에 살을 붙이는..

C 파일처리

안녕하세요 열코입니다. 이번 시간에는 C언어에서 파일처리에 대해 알아보겠습니다. 지금까지 했던 작업은 어디에도 저장 되어있지 않고 오로지 명령 프롬프트(터미널)에서만 수행됐지만, 실제 소프트웨어 프로그..

Atom Editor 설치

안녕하세요 열코입니다. 지금까지는 노트패드(메모장)에 코딩하느라 힘드셨죠? ㅜㅜ 이번시간에는 HTML을 포함, CSS, JavaScript 등을 지원하는 텍스트 에디터 아톰(Atom) 설치에 대해 알아보겠습니다. 먼저 아톰..

HTML 기본 문법

안녕하세요 열코입니다. 이번 시간에는 HTML 기본 문법에 대해 알아보겠습니다. 먼저 HTML은 HyperText Markup Language의 약자로 웹페이지를 구성하는 마크업 언어입니다. 자바 스크립트와 CSS 등을 같이 사용하..

자바 가비지 컬렉션(Java Garbage Collection)

안녕하세요 열코입니다. 이번시간에는 자바의 가비지 컬렉션에 대해 알아보겠습니다. 우리가 C/C++ 프로그래밍을 할 때 메모리 누수(Memory Leak)를 막기 위해 객체를 생성한 후 사용하지 않는 객체를 파괴(메모리..

안드로이드 설정 화면 호출

안녕하세요 열코입니다. 프로그램 개발 중에 설정 화면을 불러와야 하는 상황이 발생할 수도 있죠? 이번에는 안드로이드 프로그래밍 중 설정 화면을 호출하는 방법에 대해 알아보겠습니다. 저는 먼저 activity_mai..

SELECT, ORDER BY 사용법

안녕하세요 열코입니다. SELECT는 SQL에서 가장 일반적으로 사용되는 문으로, 데이터 베이스에서 데이터를 검색해서 가져오는데 사용됩니다. SELECT문을 통해 전체 테이블을 가져오거나 규칙을 지정하여 테이블의..

C++ 벡터 사용법

안녕하세요 열코입니다. C++에서 벡터는 표준 템플릿 라이브러리(STL)에서 제공하는 동적 배열구조 클래스입니다. C의 배열처럼 빠른 랜덤 접근이 가능하며 자동으로 배열의 크기 조절과 추가 삭제가 가능합니다...

C언어 포인터

안녕하세요 열코입니다. 이번시간에는 C언어 포인터에 대해 알아보겠습니다. 포인터(Pointer)란 프로그래밍 언어에서 변수의 메모리 주소를 가리키는 변수를 말합니다. 포인터는 Low Level 언어(C/C++/어셈블리.....

파이썬 난수(random) 생성

안녕하세요 열코입니다. 이번시간에는 파이썬의 랜덤(난수) 클래스에 대해 알아보도록 하겠습니다. 파이썬에서 난수를 생성하기 위해서는 random 모듈을 사용합니다. 프로그래밍을 하면 난수를 생성해야하는 일이..

자바 벡터(Vector)와 어레이리스트(ArrayList) 비교

안녕하세요 열코입니다. 이번에는 자바에서 크기가 동적인 배열을 사용할 때 주로 사용하는 두가지 클래스 벡터(Vector)와 어레이리스트(ArrayList)에 대해 비교분석 해보겠습니다. 먼저 벡터에 대한 설명입니다...

파이썬으로 이메일 보내기(SMTP)

안녕하세요 열코입니다. 이번에는 파이썬을 활용하여 지메일(Gmail)로 메일 보내기에 대해 알아보겠습니다. 파이썬에서 메일을 보내기 위해서는 외부 라이브러리가 별도로 필요하지 않으며, 'SMTP lib' 이라는 기..

안드로이드 WakeLock 잠들어있는 폰 깨우기

안녕하세요 열코입니다. 안드로이드 앱 개발 중 알림 기능을 구현하는 도중 휴대폰이 꺼져있는 상태에서 알림이 발생하면 화면을 깨우는 기능이 필요하여 검색하는 도중 안드로이드에서 제공하는 WakeLock에 대해..

안드로이드 진동(Vibrator) 사용하기

안녕하세요 열코입니다. 오늘은 안드로이드 앱에서 진동 사용하는 방법에 대해 알아보겠습니다. 이 진동 기능은 사용자에게 어떤 알림을 직관적으로 주기 위해 사용하는데요. 보통 기존에 앱에서는 소리와 진동을..

파이썬 간단하게 코딩하기

안녕하세요. 열코입니다. 파이썬은 간결하고 높은 가독성으로 프로그래머들에게 선호되는 언어 중 하나입니다. 이번 시간에는 파이썬 프로그래머를 위해 최대한 간단한 코딩 방법에 대해 소개합니다. 시작하겠습니..

안드로이드 Activity class does not exist. 오류 해결법

안드로이드앱 개발중 뜬금없이 프로젝트가 실행되지 않았다. Run App을 눌러봐도 다음과 같은 오류만 나올 뿐 Error: Activity class { ... } does not exist. 전혀 실행되지 않았다. 프로젝트를 처음 실행하면 앱..

파이썬 집합(Set) 자료형 사용법

이번 시간에는 파이썬의 Set 자료형에 대해 알아볼건데요. Set는 한글로 집합입니다. 중학교 수학시간에 집합이라고 배우죠? 네 맞습니다 바로 그 집합입니다. 실제로 집합이 필요한 상황에서 적절히 사용할 수 있..

안드로이드 notification 간단한 사용법

푸시알림이 아닌 앱 자체에서 알림을 발생 시키고 싶을 땐 Notification을 사용하면 됩니다. 다음 코드를 통해 간단하게 작성가능합니다. NotificationManager notificationManager; PendingIntent intent; 먼저 N..

안드로이드 FCM 푸시알림 예제

안드로이드 앱을 개발하다보면 푸시알림 기능이 필요한 부분이 존재합니다. 기존의 GCM(Google Cloud Messaging) 서비스가 대표적이었는데, 최근 구글에서 Firebase를 인수, FCM(Firebase Cloud Messaging) 서비스..

파이썬 튜플(Tuple) 사용법

파이썬에서 튜플이란 쉼표로 구분 된 객체의 모음입니다. 말로만 들으면 리스트와 비슷하다고 생각 되시겠지만 엄연한 차이가 있습니다. 그중 가장 두드러진 차이점은 바로 다음과 같습니다. ☞ 튜플은 생성 후 요..

파이썬 리스트 사용법2 - 활용

파이썬의 리스트는 수학적 문장들을 한줄로 표현할 수 있습니다. 리스트로 제곱 표현하기 기존의 파이썬 리스트를 활용하여 반복문으로 1의 제곱부터 9의 제곱까지 출력하는 방법입니다. 예제 코드 - 제곱 출력 sq..

파이썬 리스트 사용법

안녕하세요 열코입니다. 리스트는 파이썬에서 가장 강력한 도구 중 하나로 다른 언어에서의 배열과 비슷합니다. 리스트의 최대 장점은 리스트의 요소들이 항상 같은 타입일 필요가 없다는 것입니다. 리스트에는 정..

안드로이드 블루투스 연동 예제 소스

안녕하세요 열코입니다. 이번에는 안드로이드에서 블루투스 연동하는 방법에 대해 알아보겠습니다. 먼저 안드로이드 프로젝트를 빈 프로젝트로 생성합니다. 그리고 안드로이드에서 블루투스에 관한 권한을 얻기 위..

카카오톡 pc버전 설치하기

카카오톡 PC버전 설치하는 방법에 대해 알아보겠습니다. 카카오톡 PC버전은 Windows XP이상에서 모두 사용 가능하며 32bit, 64bit 운영체제에 따른 제한이 없으며 설치프로그램을 다운로드 받아 간단하게 설치 가..

Visual Studio 2017 설치하기

이번에는 PC에 비주얼 스튜디오 2017버전을 설치하는 방법에 대해 소개합니다. 먼저 비주얼 스튜디오를 다운로드 받기위해 아래 사이트에 접속합니다. 다운받기 ☜ 클릭 비주얼 스튜디오에는 Community, Professio..

정렬 알고리즘 종류

현재 많은 수의 알고리즘이 존재하지만 그중 실제 구현에서는 몇가지 알고리즘만 사용됩니다. 자바, C++ 등의 언어에서는 라이브러리로 O(n log n) 하한의 정렬 알고리즘을 제공하여 그냥 사용하면 되지만, 정렬..

검색 알고리즘 종류

1. 선형 검색 (Linear Search) - 배열의 가장 좌측부터 시작하여 찾으려는 값과 하나씩 배열의 각 요소와 비교합니다. - 찾으려는 값을 발견한다면 배열의 해당 인덱스를 반환(return)합니다. - 찾으려는 값이 없..

java.lang.NullPointerException 해결법

자바에서 NullPointerException은 RuntimeException입니다. 특수한 널 값은 객체 참조에 할당할 수 있습니다. 프로그램에 널값을 가지는 객체 참조를 사용하려고하면 NullPointerException이 throw됩니다. + null..

java.lang.ArrayIndexOutOfBoundsException 해결법

자바는 배열의 작성 및 조작을 데이터 구조로 지원합니다. 배열의 크기를 n이라고 했을 때 배열의 인덱스는 1부터 n까지가 아닌 0부터 n-1까지입니다. 프로그래밍 중 ArrayIndexOutOfBoundsException이 가장 많이..

자바 foreach문 사용법

foreach(For-each)문은 for, while, do-while 반복문과 같은 배열 탐색 기법입니다. 사용방법은 다음과 같습니다. ☞ 일반적인 for 반복문과 동일하게 for 키워드를 사용합니다. ☞ 반복문 내에 카운터 변수를 선..

C++ 자바 상속 비교

상속의 목적은 C++과 자바 모두 동일합니다. 우리가 상속을 받는 목적은 코드를 재사용하거나 is-a 관계를 생성하기 위함입니다. 그렇다면 이 두 객체지향언어(Object-Oriented Laguage)의 상속의 차이점에 대해..

안드로이드 문자인식

저번에 Tesseract와 OpenALPR을 이용하여 C# 프로그램을 만들었는데 이번에는 안드로이드에서 만들어보겠습니다!! 참고 ☞ C# 문자인식 프로그래밍 안드로이드에서 문자인식을 하기위해서는 기본적으로 OpenCV 라..

자료구조 그래프(Graph)

※ 그래프란 비선형(non-linear) 자료구조이며 노드(node)와 엣지(edge)로 구성되어 있습니다. - 노드는 꼭짓점(vertex)으로 표현됩니다 - 엣지는 두 노드를 연결하는 선(line)으로 표현됩니다. 위 그래프를 V(ve..

안드로이드 텍스트뷰 사용법

안드로이드 프로그래밍 중 텍스트를 출력시키고 싶다면 TextView를 사용해보세요. TextView는 View클래스를 상속받아 만들어진 클래스입니다. ※ 참고 만약 유저가 수정할 수 있는 텍스트란을 원하신다면 EditText..

C 랜덤 - 난수 생성하기

C언어 프로그래밍에서 코드를 작성하다보면 무작위의 숫자가 필요한 경우가 존재합니다. 보통 무작위 숫자를 난수라고 표현합니다. C언어에서 난수를 표현하기 위해서는 라이브러리를 사용해야합니다. ※ 알고가기..

자바 배열 사용법

배열이란 같은 데이터 타입을 가진 연속된 메모리 공간으로 이루어진 자료 구조입니다. 같은 데이터 타입을 가진 여러개의 변수를 할당하기위해 사용합니다. 자바에서 배열 사용하는 방법입니다. 1. 1차원 int형..

안드로이드 findContours 오류 해결

안드로이드 OpenCV의 findContours 사용중 다음과 같은 오류가 발생했을 때 해결하는 방법입니다. 오류 : Caused by: CvException [org.opencv.core.CvException: cv::Exception: OpenCV(3.4.3) /build/3_4_pack-a..

자바 유료화에 대해

Oracle의 Java 1.8의 유료화 정책이 공개됬습니다. 2019년 부터 Oracle에서 배포하는 Java 1.8 SDK 및 JRE 모든 공개용 패키지를 이용하여 상업 목적의 개발 및 사용에 대한 유료화 정책입니다. ♠ Java의 저작권..

자료구조 힙(Heap)

이진 힙 이진 힙은 다음 특징(Properties)을 가진 이진 트리입니다. 1. 완전 트리(Complete Tree)이며 배열(Array)안에 저장되기 적합(Suitable)합니다. 2. 이진 힙은 최소(Min) 힙 또는 최대(Max) 힙 중 하나입니..

아두이노 블루투스(HC06) 연동

이번에는 아두이노끼리 블루투스 통신 하는 방법에 대해 알아보겠습니다. 블루투스 통신을 위해 다음 모듈이 필요합니다. HC06 모듈입니다. 제원은 다음과 같습니다. ○ 범위 : ~10M ○ 동작 전원 : 3.6 ~ 6V ○..

안드로이드 OpenCV 관심영역(ROI) 추출

이번 시간에는 OpenCV를 이용하여 관심역영(ROI)을 추출하겠습니다. 관심영역 추출은 문자인식 전처리 기법 중 하나로 인식 할 범위를 대폭 축소시켜 프로그램 전반적인 실행속도를 향상 시키고 인식률 또한 높일..

안드로이드 OpenCV 설치

안드로이드에 OpenCV를 설치하는 방법에 대해 알아봅시다. 아래에 링크에 들어가서 OpenCV 3.4.3 android sdk를 다운받고 적절한 폴더에 설치합니다. https://github.com/opencv/opencv/releases OpenCV를 설치할..

자료구조 이진 탐색 트리(Binary Search Tree)

이전 시간에 트리에 대해 공부했습니다. (참고 : 자료구조 트리) 이번 시간에는 이진 탐색 트리에 대해 공부해보겠습니다. ♪ 이진 탐색 트리(Binary Search Tree) : 노드기반(Node-Based) 이진 트리 자료구조입니..

C# 소켓 프로그래밍 - 비동기 채팅 프로그램 만들기 (1:n 통신)

지난번에 1:1 소켓프로그래밍으로 채팅 프로그램을 만들어보았습니다. 참고 : http://yeolco.tistory.com/31 이번 시간에는 1:n 비동기 방식 채팅프로그램을 만들어보겠습니다. 각 클라이언트 소켓마다 쓰레드를..

자료구조 트리(Tree)

◎ 트리(Tree) : 배열(Array), 링크드 리스트(Linked List), 스택(Stack), 큐(Queue) 같이 선형 자료구조(Linear Data Structure)와 달리 트리는 계층적 자료구조(Hierarchical Data Structure) 입니다. ◎ 용어(T..

데이터베이스 책 추천

* 데이터베이스 책 추천 * 해당 책 제목을 누르면 구매 사이트로 이동합니다. 1. 가장 쉬운 데이터베이스 설계 책 - 적절한 데이터베이스 디자인을 위한 지침서 ☞ 설계 초보자를 위한 책 ☞ DB설계자, PL, PM이..

C# DB연동

C#에서 MySQL DataBase 연동하는 방법입니다. 먼저 C# 프로그램에서 MySQL과 연동하기 위해서는 Connector가 필요합니다. 아래 링크로 들어가 다운받아 줍니다. https://dev.mysql.com/downloads/connector/net/8...

안드로이드 핀치 줌 구현 - 멀티 터치

안드로이드로 핀치 줌 (두 손가락으로 벌리고 좁힘으로써 화면을 확대, 축소 하는 기능)을 멀티 터치 이벤트로 구현하는 방법입니다. 먼저 변수 선언입니다. (클래스 내부입니다.) private double touch_interval_..

안드로이드 이미지 뷰 여백 없애기

ScorllView에 ImageView를 넣었을 때 위 아래로 여백이 생기는 것을 확인했습니다. 이를 제거하기 위해 ScaleType을 모두 적용했지만 원하는데로 적용되지 않았습니다. 해결 방법은 간단합니다. 스크롤 뷰, 이미지..

안드로이드 카메라 줌 기능 구현

SeekBar를 이용한 카메라 줌인, 줌아웃 기능 제어하는 방법입니다. 먼저 Layout입니다.

[안드로이드] 실시간 SurfaceView 화면 캡쳐하기

어플리케이션 제작 중에 SurfaceView에 CameraPreview를 이용하여 카메라를 제어하는 프로그래밍 중 실시간으로 SurfaceView를 캡쳐해야하는 코드가 필요해 처리하는 과정 등을 정리하여 포스팅합니다. SurfaceVie..

[안드로이드] 비트맵 이진화 처리

비트맵 이진화 처리 함수입니다. 먼저 비트맵을 받아 복사한 후 모든 픽셀을 탐색하며 색깔을 변경해줍니다.(GetNewColor) 그리고 새로운 비트맵을 반환합니다. private Bitmap GetBinaryBitmap(Bitmap bitmap_src..

안드로이드 특수키 제어하기

안드로이드 프로그래밍에서 특수키 제어하는 방법입니다. 특수키란 키보드로 입력하는 키 외에 뒤로가기, 홈버튼, 볼륨버튼.. 등을 말합니다. 먼저 실행 될 activity에서 우클릭 - Generate를 눌러줍니다. 생성자..

[데이터베이스] 데이터베이스 정규화

정규화란? 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스 * 정규화의 목적 - 중복성 및 종속성 제거 : 유연성 향상, 데이터 보호, 테이블 규칙성, 테이블 간의 관계 설정 - 데..

[C#] 자동차 번호판 인식 프로그램 with Tesseract-OCR, OpenALPR

안녕하세요 열코입니다! OpenCV로 영상처리 및 패턴인식을 공부하는 동안 가장 기본적인 자동차 번호판 인식 프로그램을 간단하게 제작해 보았습니다. * 개발 환경 개발 툴 : Visual Studio 2017 개발 언어 : C# *..

[C#] 유니코드 한글로 변환하기

API를 사용하다보면 보통 해외에서 만든 소스가 대부분입니다. 따라서 한글을 지원하기도 하고 안하기도 하는데 한글을 지원하더라도 유니코드로 문자열이 처리가 되면 난감합니다. 그래서 이번엔 유니코드를 한글..

[Arduino] 아두이노 DIY 스마트 책상 만들기!

1. 개요 아두이노와 각종 센서를 통해 책상에 오래 앉아 있는 직장인 또는 학생의 편의와 건강을 위한 스마트 책상 만들기 프로젝트입니다. 2. 회로도 회로도가 조금 복잡합니다... USB 모듈에는 USB 선풍기를 연..

[Android] 안드로이드 내부 저장소 텍스트 파일 읽기 및 쓰기

Android 내부 저장소에 텍스트 파일(.txt) 읽기 및 쓰기 방법입니다. /////////////////////// 파일 쓰기 /////////////////////// String str = input_text.getText().toString(); // 파일 생성 File saveFile =..

[TCP/IP] C# 소켓 프로그래밍 - 채팅 프로그램 만들기

TCP/IP 는 패킷 통신 방식으로 IP(인터넷 프로토콜)와 TCP(전송제어 프로토콜)로 구성되어있습니다. 이번에는 C#으로 TCP/IP 통신 프로그램을 이용하여 간단한 채팅프로그램을 만들어보겠습니다. * 개발 환경 개..

자바 String 문자열 사용법 정리

안녕하세요 열코입니다. 이번 시간에는 자바에서 String(문자열) 사용법에 대해 알아보겠습니다. 자바에서 문자열 사용 시 자바에서 제공하는 String class를 참조합니다. ※ 선언 및 정의 ⇒ 문자열을 사용하기..

C++ String 문자열 사용법 정리

♣ string 헤더파일을 include 해준다. #include ← 추가! ※ append : 문자열 추가 ⇒ 추가 하고자 하는 문자열이 기존 문자열 뒤에 추가됨. 사용법 : str.append("문자열"); * str += "문자열"; 또는 s..

[Java] 자바 웹 크롤링 - 실시간 데이터 수집

1. 개요 크롤링(Crawling) 이란? 정식명칭은 Scraping 또는 Web Scraping 으로 웹 사이트에서 원하는 정보를 추출하는 것을 의미합니다. 보통 웹 사이트는 기본적으로 Html 기반입니다. 크롬에서 Ctrl + U 또는 우..

[Android] 안드로이드 SurfaceView 카메라 연동하기

안드로이드로 카메라를 연동 및 제어 방법입니다. 소스코드는 주요소스코드만 첨부합니다. 설명은 주석을 참고하세요. 1. AndroidManifest.xml 에 접근 권한 추가

안드로이드 EditText 사용법 정리

Android Studio에서 EditText 사용시 필요한 Methods에 대한 정리입니다. 1. ems : 최초 기본 너비 설정 사용 : android:ems="8" 2. maxLength : text 최대 길이 설정 사용 : android:maxLength="12" 3. textColor..

[Android] 안드로이드 키보드 입력 창 올리기/ 내리기

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); // 키보드 객체 받아오기 imm.hideSoftInputFromWindow(input_text.getWindowToken(), 0 ); // 키보드 숨기기 im..

[MySQL] Server에서 Client에게 접근 권한 주기

Server에서 MySQL Console 관리자 ID로 접속 후, 다음 명령어 실행 GRANT ALL PRIVILEGES ON *.* TO 아이디@'ip주소' IDENTIFIED BY '비밀번호' WITH GRANT OPTION; 아이디, 비밀번호는 Server 관리자 아이디 입력..

[2018.04.28] 정보처리기사 해설 - 5. 데이터 통신

[5과목 : 데이터 통신] 81. 맨체스터 코드 - 맨체스터 코드는 하나의 비트가 전송될 때, 각 비트타임 중앙에서 전압의 전이가 발생 - 아래는 맨체스터 코드의 예 82. HDLC(High-Level Data Link Control) 전송 모..

[C++] C# 연동하기 / C# dll 파일 만들기

[C# DLL 파일 생성 및 C++ 연동법 ] 1. C#에서 DLL파일 생성 0) VS 관리자 권한으로 실행! 1) 새 프로젝트 - 클래스 라이브러리(.NET Framework) 2) using System.Runtime.InteropServices; 코드 추가 3) 프로젝트..

[자료구조] 큐 QUEUE

1. 의미 - 큐(Queue)의 사전적 의미는 무엇을 기다리기 위해 서는 줄, 대기열입니다. 예를들어 우리가 게임을 할 때 '큐를 잡는다, 큐를 기다린다'라는 말의 큐는 바로 줄, 대기열을 의미합니다. 우리가 줄을 서면..

[자료구조] 스택 STACK

1. 의미 - 스택 자료구조는 아래가 막혀있는 긴 통에 물건을 층층이 쌓아둔 상태로 보시면 됩니다. 예를들어 물건을 쌓기위해서는 현재 쌓여있는 물건 중 가장 위쪽에 쌓일 것이고, 꺼내기 위해서는 현재 쌓여있는..

C# 바코드 인식 프로그램

* 개발환경 개발 툴 : Visual Studio 15.0 (2017) 개발 언어 : C# 데이터베이스 : MySQL 5.7 * 데이터베이스 테이블 Table 1 : User - Num(PK), ID, PW, Manager Table 2 : Data - Code, Date, User(FK) * 기능 -..

파이썬 DB연동 - PyMySQL + MySQL

Python에서 MySQL DB를 사용하기 위해서는 PyMySQL을 설치해야 합니다. PyMySQL은 다음 공식 사이트에서 다운로드 가능합니다. https://github.com/PyMySQL/PyMySQL PyMySQL/PyMySQL PyMySQL - Pure Python MySQL..

자바 DB연동 - JDBC + MySQL

이번에는 Java Eclipse에서 JDBC를 통해 Mysql DB를 연동하는 방법에 대해 알아보겠습니다. - JDBC란? Java DataBase Connectivity로 자바에서 데이터베이스에 접속 할 수 있도록 자바에서 제공하는 API입니다. *..

[C#] Visual Studio 2017 C# OpenCV 라이브러리 설치

본 게시글은 Visual Studio 2017 및 OpenCV 2.4.10 버전 기준으로 작성되었음을 알려드립니다. * 설치하기 1. https://opencv.org/releases.html 링크에 접속합니다. Releases - OpenCV library Releases 3.4.2 20..

[BOJ] 1912 연속합 - 동적계획법 풀이

* 동적계획법이란? https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EA%B3%84%ED%9A%8D%EB%B2%95 동적 계획법 - 위키백과, 우리 모두의 백과사전 동적 계획법 수학과 컴퓨터 공학, 그리고 경제학에서 동적 계..

[BOJ] 8979 올림픽 - 문제 풀이

문제의 조건은 3가지로 단순합니다. 1. 금메달 수가 더 많은 나라 2. 금메달 수가 같으면, 은메달 수가 더 많은 나라 3. 금, 은메달 수가 모두 같으면, 동메달 수가 더 많은 나라 얼핏보면 if문을 사용하여 조건을..

카카오 개발자 컨퍼런스 2018 'if kakao' 개최

카카오 개발자 컨퍼런스 2018 if kakao가 2018년 9월 4일 삼성동 COEX에서 개최됩니다. 홈페이지 https://if.kakao.com/ 를 방문하면 여러가지 정보와 신청 할 수 있습니다. if kakao 개발자 컨퍼런스 2018 세상은..

[2018.04.28] 정보처리기사 해설 - 4. 소프트웨어 공학

[4과목 : 소프트웨어 공학] 61. HIPO(Hierarchy Input Process Output) - 하향식 소프트웨어 개발을 위한 문서화 도구 - 시스템 분석 및 설계, 문서화 시 사용되는 기법으로 입력, 처리, 출력 기능 - 체계적 문서..

[2018.04.28] 정보처리기사 해설 - 3. 운영체제

[3과목 : 운영체제] 41. 가상 기억장치 - 보조기억장치의 일부를 주기억장치처럼 사용, 현재 운영체제에서 흔히 사용 - 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용 - 가상 기억장치의 프로그램을 실..

[2018.04.28] 정보처리기사 해설 - 2. 전자 계산기 구조

[2과목 : 전자 계산기 구조] 21. 다중처리(병렬처리)의 특징 - 프로세서를 여러 개 사용하여 여러 작업을 동시에 수행 : 작업 속도 향상 - 프로세서 중 일부에 문제가 발생하더라도 다른 프로세서가 이를 처리 :..

[Arduino] 아두이노 ESP8226 OV2640 영상처리 및 패턴인식 프로그래밍

ESP8266 + OV2640 ESP8266 과 OV2640을 이용하여 영상처리와 패턴인식 프로그래밍을 해보려고 합니다. 위 사진은 ArduCam ESP8266 과 OV2640 결합 사진입니다. 배선은 따로 필요없으며 위 사진과 같이 결합 해주시..

[2018.04.28] 정보처리기사 해설 - 1. 데이터 베이스

[1과목 : 데이터 베이스] 1. 카디널리티(Cardinality)는 튜플(행)의 수를 의미합니다. 2. 버블 정렬은 2개의 숫자씩 짝을 비교해서 정렬하는 방법입니다. 다음은 [9, 6, 7, 3, 5]의 버블 정렬(오름차순) 수행 과정..