코딩을 하는 과정에서 필연적으로 여러 가지 오류가 생기기 마련입니다. 이러한 오류들을 해결하는 과정을 디버깅이라고 하며 Visual Studio를 포함한 모든 IDE들은 이러한 디버깅 기능을 지원하고 있으며 만약 코드에 오류가 발생한다면 이러한 디버깅 도구 또는 디버거를 사용하여 훨씬 편하게 코드가 잘못된 이유들을 빠르게 파악할 수 있습니다. 그중에서도 특히 Visual Studio의 경우 매우 강력한 디버깅 기능을 제공하고..
프로그래밍을 하다 보면 필연적으로 각종 오류에 부딪치게 되고 그 오류를 해결하는 과정에서 디버깅은 필수입니다. 디버깅을 얼마나 잘하느냐에 따라 프로그램의 생산성과 개발자의 능력이 좌우되기도 합니다. 그렇기에 모든 IDE에는 디버깅을 할 수 있는 기능들이 아주 잘 되어있습니다. 자바 개발이나 웹 개발을 할 때 많이 쓰이는 이클립스에도 디버깅 기능이 있습니다. 오늘은 이클립스의 디버깅 기능에 대해 포스팅 해보려..
열거형이란? 열거형은 사용하면 변수가 갖는 값에 의미를 부여할 수 있고 프로그램 가독성이 향상됩니다. 열거형은 명명된 정수형 상수의 집합으로 구성됩니다. 열거형을 선언하면 컴파일러는 열거형 멤버들을 정수형 상수로 인식합니다. enum 형식의 변수를 인덱싱 식에서 사용할 수 있으며 모든 산술 및 관계형 연산자의 피연산자로 사용할 수 있습니다. 열거형 상수 또는 열거형 형식의 값은 C 언어에서 정수 식을 허용하는..
구조체에서 포인터가 사용되는 경우는 아래와 같이 크게 3가지로 구분됩니다. 1. 멤버 변수로 포인터 사용하기 2. 구조체 변수로 포인터 사용하기 3. 구조체 간의 상호 참조 멤버 변수로 포인터 사용하기 #include struct Score { int *kor; //국어성적 int *mat; //수학성적 int *eng; //영어성적 }; int main() { int score1 = 100; int score2 = 90; int score3 = 80; struct Score s; s.kor = &score1; s.mat = &score2; s.e..
구조체란? 구조체란 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형입니다. 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입이며 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있습니다. 구조체는 똑같은 변수를 여러번 사용해야 하는 경우에 효과적으로 사용할 수 있습니다. 예를 들어, C언어를 이용해서 콘솔로 간단한 성적 시스템을 만든다고 가정해봅시다. 이 주소록..
함수의 주소 변수를 선언하면 메모리 공간이 할당되고 그 공간의 위치가 주소로 존재하듯이 함수를 선언해도 변수와 마찬가지로 메모리에 공간이 할당되며 그 위치를 표현하는 주소가 생겨납니다. C언어 코드는 컴파일이 되면 기계어로 변경되고 프로그램이 실행되면 코드 세그먼트라는 메모리 영역에 위치하게 됩니다. 즉, 함수의 형태는 변경되겠지만 결국 메모리에 저장되기 때문에 주소를 가지게 된다는 의미입니다. #includ..
함수란? 함수는 특정 작업을 수행하는 코드의 집합이라고 정의할 수 있습니다. 반복적으로 수행되는 코드들을 함수로 만들어 사용하면 코드의 재활용성이 높아집니다. 기능들을 분류하여 다양한 각각의 함수로 만들어 사용할 수도 있고 함수 내부에서 또 다른 함수를 호출 할 수도 있는 등의 다양한 이유로 인해 함수를 사용하면 복잡한 기능도 비교적 쉽게 구현할 수 있으며, 구조화 프로그램에 있어 매우 중요한 개념입니다...
포인터란? 포인터는 주소를 저장하는 변수입니다. 기존의 변수는 데이터를 저장하는데 반하여 포인터는 메모리 공간의 주소를 저장합니다. 포인터 변수가 주소를 저장하려면 변수의 주소를 알아야 하는데 변수 이름 앞에 & 연산자를 붙이면 해당 변수의 시작 주소를 반환합니다. 더 나아가서 포인터 변수가 저장하는 변수의 주소에 저장된 값을 참조하려면 * 연산자를 사용합니다. 포인터 변수의 선언 및 사용 포인터 변수도 변..
연산자 우선순위란? 연산자 우선순위란 수학 및 컴퓨터 프로그래밍에서 연산의 우선순위는 모호하게 해석가능한 수식에서 어느 연산을 먼저 계산할 것인가를 결정하는 규칙입니다. 예를 들어 수학의 사칙연산을 보면 2+3*2 라는 식이 있을때 *가 +보다 우선순위가 높기때문에 먼저 3*2 = 6이 되고 그다음에 2를 더해 최종 결과값이 8이됩니다. 이처럼 프로그래밍 언어에도 연산자에 대한 우선순위가 존재합니다. 이러한 우선순위..
몇 년 전까지만 해도 나는 삶을 살아가는데 있어 안전지향적 테크트리만을 고집했다. 조금이라도 위험요소가 있으면 회피하고 성공 가능성이 최대한 높은길로만 나아갔고 이것이 내 방식이며 또한 옳은 길이라고 생각했다. 그때의 나는 도전을 해야 할 일이 생기면 안 되는 이유부터 생각해냈다. "A"는 어떤 것 때문에 안되고 "B"는 어떤 것 때문에 안되고 맨날 이런 식이였다. 어쩌면 게을렀던 나 자신이 노력하기 귀찮아서..
이번 포스팅에서는 안드로이드 스튜디오와 오라클을 연결하는 방법에 대해서 한번 알아보도록 하겠습니다. 안드로이드 스튜디오에 내부 DB인 SQLite와는 직접적으로 바로 연결이 가능하지만 Oracle과 MySQL같은 외부 DB는 안드로이드에서 직접적으로 접근이 불가능합니다. 보안상의 이유때문이라고 하네요. 그러므로 위 사진과 같이 JSP 혹은 서블릿등으로 오라클과 통신하기 위해서는 중간 다리를 만들어 줘야하는데 이번 포..
저번 포스팅에서는 안드로이드와 jsp와 연결/통신하는 방법을 포스팅 했었죠. 이번에는 안드로이드와 서블릿을 연결/통신 하는 방법을 소개해드리고자 합니다. 저번 포스팅에서도 알려드렸다시피 안드로이드는 보안관련문제로 외부DB(오라클,MYSQL,몽고DB등)과의 직접적인 연결이 불가능합니다. 그래서 사진과 같은 방식으로 안드로이드와 오라클 사이에 중간다리 역할을 하는 서버가 있어야 하는데 앞선 포스팅에서는 JSP로..
저번 포스팅 MVC2 패턴으로 만드는 회원가입 및 로그인에 이어서 이번에는 MVC2 패턴으로 만드는 게시판을 공부해보겠습니다. 회원가입 , 로그인 기능과 마찬가지로 게시판도 어느 웹사이트에서나 꼭 하나씩은 있는 필수적인 기능입니다. 어짜피 웹사이트 기능들은 다 거기서 거기입니다. (데이터 추가, 출력, 수정, 삭제) 이 게시판을 응용하면 웹사이트에 존재하는 모든 기능들을 다 구현할 수 있다고 해도 될 정도로 중요한..
TCP 통신방식이란? 1. TCP란 소켓 프로그래밍 중의 하나로 스트림 통신 프로토콜이라고 부르며, 양쪽의 소켓이 연결된상태여야만 가능 하기 때문에 연결지향 프로토콜이라고도 합니다. 2. TCP 프로토콜은 신뢰성 있는 프로토콜이기 때문에, 송신한 쪽의 데이터가 수신 측에 차례대로, 중간에 유실되는 일 없이 도착 하는 것을 의미합니다. 그러려면 수신 측과 송신 측이 미리 연결을 맺고 연결된 순서대로 데이터를 교환해야..
계층형 쿼리란? 계층형 구조는 상하 수직관계의 트리형태의 구조로 이루어진 형태를 말합니다. 예를 들자면 특정회사의 부서, 특정학교의 학과등이 있습니다. 계층형 쿼리는 테이블에 저장된 데이터를 계층형 구조로 반환하는 쿼리를 말합니다. 오라클에서의 계층형 쿼리는 START WITH ... CONNECT BY 절로 생성할 수 있으며 계층형 정보를 표현하기 위한 목적으로 오라클 8부터 지원되었습니다. 수행순서 1. START WITH 절에..
UDP(User Datagram Protocol 1. UDP는 비 연결 지향이고, IP 위에 매우 얇은 레이어로 구성되어 있습니다. 2. UDP를 사용하는 애플리케이션은 TCP 프로그램에 비해 제어를 할 수 있는 부분이 적습니다. 3. UDP는 데이터를 전송할 때에 데이터가 잘 도착했는지 알아낼 방법이 없으며, 데이터를 보낸 순서대로 도착한다는 보장도 할 수 없습니다. 4. UDP는 TCP에 비해 훨씬 빠르게 전달된다는 장점이 있습니다. DatagramPacke..
그룹별 순번매기기 ROW_NUMBER() 카테고리(CATEGORY_ID)별 저렴한 금액(STANDARD_COST)순으로 순번 매기기 SELECT A.CATEGORY_ID, B.CATEGORY_NAME, A.STANDARD_COST, ROW_NUMBER() OVER (PARTITION BY A.CATEGORY_ID ORDER BY A.CATEGORY_ID, A.STANDARD_COST) AS NUM --그룹별 순번 FROM PRODUCTS A INNER JOIN PRODUCT_CATEGORIES B ON A.CATEGORY_ID = B.CATEGORY_ID 카테고리별 가격의 순번을 매기는 쿼리입니다. CPU카테..
인덱스(Index)란? 인덱스는 데이터베이스 테이블에 있는 데이터를 빨리 찾기 위한 용도의 데이터베이스 객체이며 일종의 색인기술입니다. 테이블에 index를 생성하게 되면 index Table을 생성해 관리합니다. 인덱스는 테이블에 있는 하나이상의 컬럼으로 만들 수 있습니다. 가장 일반적인 B-tree 인덱스는 인덱스 키(인덱스로 만들 테이블의 컬럼 값)와 이 키에 해당하는 컬럼 값을 가진 테이블의 로우가 저장된 주소 값으로 구..
오라클 테이블 스페이스(Table Space)란 무엇인가? 오라클은 데이터를 관리하는 데이터베이스입니다. 데이터를 어딘가에 저장해놓고 사용하는 시스템이라고 볼 수 있습니다. 그리고 데이터 저장 단위 중 가장 상위에 있는 단위를 테이블 스페이스라고 합니다. 데이터 저장 단위는 물리적, 논리적단위로 나눌 수 있습니다. 물리적 단위는 파일을 의미하고 논리적 단위는 데이터블록 -> 익스텐트 -> 세그먼트 -> 테이블스페이스 이..
공공 데이터 홈페이지라는것이 있습니다. 국가혹은 공공기관에서 만들어놓은 정보들을 국민들에게 개방해 둔 것인데 여기서 무료로 제공하는 공공API를 활용하여 쉽고 간단하게 유용한 앱을 만들 수 있습니다. 이번 글에서 공공기관 API를 파싱하고 검색하는것까지 구현하는 방법에 대해 포스팅하려합니다 공공기관 API는 아무거나 파싱해와도 상관없는데 저는 전기차 충전소 정보를 파싱해왔습니다. 공공API 신청 및 파싱 &..
이번에는 유니티에서 만든 프로젝트를 안드로이드 스튜디오에서 Import 하는 방법에 대해서 알아보도록 하겠습니다. 안드로이드 스튜디오의 프로젝트가 주력프로젝트이고 부가적으로 유니티기능을 활용하고 싶은 분들에게 좋은 포스팅이 되리라고 생각합니다. 유니티 프로젝트 안드로이드 스튜디오에 연동시키기 1. 먼저 시작하기전에 안드로이드 SDK 와 JDK의 경로가 잘설정되어있는지 확인합니다. (설정이 제대로 안되어있..
구글 클라우드 비전이란? 구글 클라우드 비전이란 2016년 구글에서 공개한 기계 학습 기반 이미지 인식 API입니다. 이미지파일에서 얼굴인식 , 텍스트인식, 사물, 상품로고,꽃, 랜드마크 인식 그리고 사람인경우 기쁨, 슬픔, 분노 등 다양한 감정식별도 가능합니다. 제가 직접 사용해본결과 인식률이 완벽하지는 않았으나 어플리케이션을 개발할경우 굉장히 유용한 API인것만은 틀림없는듯 합니다. 그럼 Google Cloud Vision AP..
쿠팡 파트너스란? 쿠팡 파트너스는 쿠팡에서 운영하는 온라인 제휴 마케팅 서비스입니다. 개인 홈페이지나 블로그, SNS 등과 같이 쿠팡 API를 통하여 만든 상품 링크를 공유할 수 있는 플랫폼을 가지고 있는 사람이라면 누구나 이용할 수 있습니다. 쿠팡 API를 통하여 만든 상품 링크를 소비자가 클릭하여 24시간 내에 구매가 발생하게 되면 구매 상품의 일정 퍼센티지의 커미션을 받는 구조입니다. 안 할 이유가 없습니다. 제..
안녕하세요 코딩팩토리입니다. 2019년도가 끝이 나고 새로운 한 해가 시작되었습니다. 작년에도 제 블로그에 방문해주신 모든 분들께 감사드립니다. 좋은 글을 쓰려고 노력하였으나 돌이켜보니 부족한 부분이 많았습니다. 2020년에는 미흡한 부분을 보완하여 더 좋은 블로그를 만들도록 노력하겠습니다. 작년 한 해 170개의 글을 올렸습니다. 거의 이틀에 한 번꼴로 글을 작성하였으며, 블로그의 디자인과 사이트 속도 개선 등..
개발도중 차트를 만들일이 있어 쉽게 만드는 방법을 알아보다가 재미있는 라이브러리를 발견하였습니다. 바로 MpAndroidChart이라는 라이브러리인데요 이 라이브러리를 사용하면 차트를 굉장히 쉽게 만들 수 있습니다. 이번 포스팅에서는 MpAndroidChart를 이용하여 원그래프(PieChart)를 만드는 방법에 대해 알아보겠습니다. 안드로이드 원 그래프 만들기 build.gradle repositories{ maven {url "https://jitpack.io"} } depe..
저번 포스팅에서는 MpAndroidChart 라이브러리를 활용해 원그래프(PieChart)를 만드는 방법을 알아봤습니다. 이번에는 MpAndroidChart 라이브러리를 활용하여 안드로이드 꺾은선그래프(LineChart)를 만드는 방법에 대해서 알아보겠습니다. 안드로이드 꺽은선 그래프 만들기 build.gradle repositories{ maven {url "https://jitpack.io"} } dependencies { compile 'com.github.PhilJay:MpAndroidChart:v3.0.2' } 먼저 MpAndroi..
안녕하세요 코딩팩토리입니다. 지난 2018년 한 해 동안 제 블로그를 방문해주신 모든 분께 감사드립니다. 나태해지지 않으려 꾸준히 노력한결과 한 해간 총 188개의 글을 올렸습니다. 거의 이틀당 하루꼴입니다. 더 좋은 정보를 제공하기 위해 노력했지만 미흡한 점이 많았던것 같습니다. 2019년도에도 좋은 정보를 드리기위해 노력하겠습니다. 회사의 일이 바빠지기 시작하여 작년만큼 글을 쓰기에는 어려울거같지만요. 이번..
리눅스 우분투상에서 하둡(hadoop)을 설치해보도록 하겠습니다. 하둡(hadoop)은 빅데이터 환경을 구축하기 위해서 필요한 필수 프로그램입니다. 이번 포스팅에서는 우분투에서 하둡의 설치방법에 대해서 알아보도록 하겠습니다. 빅데이터는 무엇인가? 디지털 환경에서 생성되는 데이터로 그 규모가 방대하고, 생성 주기도 짧고, 형태도 수치 데이터뿐 아니라 문자와 영상 데이터를 포함하는 대규모 데이터를 말합니다. 제 4차..
오늘은 갤럭시 탭 S6 사용후기에 대해 포스팅해보려 합니다. 갤럭시 탭 S6는 2019년 7월에 삼성에서 공개한 태블릿 PC이며 갤럭시 탭 S 시리즈의 여섯 번째 모델입니다. iOS에 아이패드가 있다면 안드로이드에는 삼성 갤럭시탭 시리즈가 대표라고 할 수 있습니다. 세계 태블릿PC 점유율에도 애플이 1위 삼성전자가 2위를 하고 있습니다. 갤럭시 탭의 판매율이 많이 떨어지긴했지만 애플대비 저렴한 가격으로 충분히 매리트가..
오늘은 얼마전 친동생이 구매한 아이패드 에어 3세대를 리뷰해보려 합니다. 동생이 전자기기에 큰 관심이 없는 줄 알았는데 뜬금없이 산다고 해서 조금 의외였습니다. 동생의 취미생활은 유튜브 & 넷플릭스, 트위치 같은 영상 시청인데 아무래도 작은 핸드폰 화면으로 장시간 시청하기에는 무리가 있다고 생각한 듯합니다. 실제로 동생 아이패드를 몇 번 써보니 침대에서 영상 같은 것 보는 목적이라면 제가 가지고 있는 노트북..
저는 이때까지 쓰레기통 자체를 사용하지 않고 생활해왔습니다. 쓰레기통을 사용한다는 것은 쓰레기를 오랫동안 방안에 보관하고 있다는 것인데 쓰레기들에서 나는 각종 악취와 쓰레기통 주변에 묻는 이물질들이 비위생적이다 생각하여 쓰레기가 생기면 그때그때 버려버리고, 쓰레기의 양이 많으면 편의점이나 마트등에서 장을 보고 난 뒤 생기는 봉투나 박스를 일회용 쓰레기통으로 삼아 쓰레기를 담고 한 번에 버려버리는 방..
저는 이때까지 노트북을 살 때는 무조건 성능을 우선으로 보고 무조건 성능위주, 가성비 위주로 노트북을 골라서 사용하였습니다. 지금까지 제가 쓰고 있던 노트북은 2016년도에 산 아수스 게이밍 노트북이고요. 하지만 이렇게 성능 좋은 게이밍 노트북을 사용하다 보니 너무나도 단점이 많았습니다. 우선 너무 무거웠습니다. 가끔씩 카페에 가서 공부를 할 때 노트북을 꼭 챙겨가는데 노트북 자체가 너무 무겁다 보니 노트북을..
얼마 전 제가 잘 사용하고 있었던 저의 무선 이어폰 갤럭시 버즈를 분실하고 말았습니다. 갤럭시 버즈를 굉장히 만족하면서 사용하였었기에 재구매를 하려 했는데 갤럭시 버즈의 개선작인 갤럭시 버즈 플러스가 나왔더군요. 가격은 갤럭시 버즈보다 약 2~3만 원 정도 더 비싸기는 하지만 이미 샀었던 것을 또 사기도 그렇고 성능상으로 얼마나 개선되었을까 하는 궁금증에 갤럭시 버즈 플러스를 구매하게 되었습니다. ※ 갤럭시..
집돌이인 코딩팩토리의 취미생활은 유튜브와 영화감상입니다. 항상 어떻게 하면 좀 더 편안한 자세로 미디어시청을 할 수 있을지 항상 고민을 하고 있습니다. 이런 고민을 하던 와중에 한가지 혁신적인 아이템을 발견하게 되었습니다. 바로 모니터암이라는 제품입니다. 모니터암이 어떤 제품인가 간단하게 설명해드리겠습니다. 모니터암 대충 이런느낌입니다. 만능 가제트팔 처럼 생겼죠? 모니터암을 설치하면 모니터의 각도..