■ 플로우 기반 형변환 (smart casts) 안드로이드 코틀린의 장점 중 하나인 Smart Casts는 타입 체크와 명시적 캐스트를 진행합니다. 자동으로 형변환을 실행하므로 사용자 편의성이 증가합니다. if 문에서 null 체크하거나 is 연산자 유형을 검사하면 자료형이 자동으로 변환됩니다. 12345678910111213141516171819202122232425open class Animal {}class Cat: Animal() { fun nyaa() { println("nyaa") }}class Dog: Animal() { fun wan() { println("wan") }} fun speak(animal: Animal) { if (animal is Cat) { animal.nyaa() } i..
안드로이드 코틀린 도입을 주저할 이유는 없습니다. 많은 이유가 있지만 그중 딱 2가지만 소개합니다. ◆ 안드로이드 코틀린 장점1. 도입이 간단함새로운 언어를 사용(도입)하는 경우, 개발 환경 구축에 문제가 생깁니다. 여러 오류가 발생하여 시간 소모가 많아지며, 개발환경 안정화까지 걸리는 시간을 가늠하기 힘듭니다. 그래서 언어 자체의 생산성을 개발 환경 구축 시간이 상쇄할 우려가 생깁니다. Kotlin은 이 점에서 상당히 편리합니다. 먼저 IDE 연계할 수 있도록 Android Studio(IntelliJ)용 플러그인이 Jetbrains에서 제공됩니다. IDE 본래 언어가 같으므로 각종 연계 기능이 좋습니다. Swift + Xcode는 Refactor rename 등도 제대로 활용할 수 있습니다. 안드로이..
이 포스트는 Python의 기본적인 List 사용방법이나 기억해두면 편리한 방법에 관해 설명합니다.포스트에서 소개하는 소스 코드는 Python 3.7, Ubuntu 18.04에서 작동 확인했습니다. Python List 기초 List는 여러 요소를 포함하는 컨테이너 객체(컨테이너 = 용기(저장 공간))를 말합니다. List를 사용하는 이유는 다양합니다. 한 번에 많은 연속적인 데이터를 취급할 수 있다는 것이 대표적인 이유죠. 기존 방법을 활용하여 요소의 추가 및 삭제, 검색 및 계산 등 다양한 작업을 할 수도 있습니다. 리스트 이외에도 여러 요소를 다루는 개체가 있습니다. settupledictnumpy.array 이 중에서 다른 언어의 배열에 해당하는 것이 numpy.array 입니다. 그런데, 이러한..
1. 무엇을 만들까요? (세로로 만듭니다)구구단 표가 작성된 텍스트 파일 출력 프로그램을 만듭니다. 또한, 구구단 뿐만 아니라 다른 유형의 숫자 표를 만듭니다. 2. 만들기 위해 필요한 기능구구단 계산 처리계산 결과를 파일로 출력입력된 숫자를 반영한 결과 도출 방법 3. 각 기능을 파이썬 소스 코드로 구현구구단 계산 처리1234567891011121314for i in range(1, 10): for j in range(1, 10): print("{} X {} = {}".format(i, j, i * j) #실행결과1 X 1 = 11 X 2 = 21 X 3 = 3.생략.9 X 7 = 639 X 8 = 729 X 9 = 81Colored by Color Scriptercs 계산 결과를 파일로 출력1234d..
맨날 다루는데 맨날 하나씩 빼먹는 통신 프로그래밍. 잔가지 쳐가며 세부적인 내용을 정리하기 보단 큰 맥락에서 어떻게 통신 프로그래밍 구현하는지 정리한다. ■ 조건프로그램 인증 : 서버, 클라이언트 프로그램 사이에서 통신으로 처리 ■ 순서프로그램에 사용자 ID 입력 후 서버 전송서버는 ID 확인 후 프로그램 실행 여부 전송 ■ 통신 프로그래밍 방법론 간단 정리서버 DB에는 사용자 정보 저장되어 있음웹서버 : 고려하지 않음MS 계열 : COM+ 여부 확인TCP/IP 이용하여 서버 데몬 구현데몬 활영하여 인증 확인미들웨어 : 여부 확인 이론적으로 다시 정리하면, ■ 인증 정보 관리 주체 어디인가?서버, 클라이언트는 각각 어떤 계열인가? (MS? 리눅스? 리눅스면 또 뭐?)향후 다층구조(n-tier) 구성할 것..
오라클 테이블 복사 후 생성 방법, SQL Developer 사용 오라클 테이블 복사 방법은 간단합니다. 마우스 클릭 몇 번으로 끝낼 수 있습니다. ◆ 마우스 오른쪽 클릭 - 테이블 - 복사 (B) SQL Developer 실행하고 DB에 연결합니다. 그리고 복사할 테이블을 마우스 오른쪽 클릭하세요. 메뉴 중 테이블 - 복사를 클릭하여 table copy를 시작합니다. 설정할 수 있는 메뉴는 총 5개입니다. 소유자이름새 테이블 소유자새 테이블 이름데이터 포함 새 테이블 이름에 원하는 이름을 적습니다. 여기 적힌 이름이 복사 후 생성될 oracle table 입니다. 데이터 포함 여부까지 결정한 뒤 적용 버튼을 누르면 위 그림처럼 복사 완료 메시지 확인창을 볼 수 있습니다. 추가로, 새 테이블 소유자를 선..
자바 입문하는 분들을 위한 글입니다. 이 포스트에선 Java 언어에서 배열 다루는 방법을 소개합니다. 그리고 배열과 List 차이, 상호 변환 등 응용 부분도 알려드립니다. 배열이란? 배열은 같은 유형의 여러 값을 한꺼번에 하나의 변수로 다룰 수 있습니다. 자바 배열 내부 값은 순서대로 나열되며, 특정 값을 검색할 수도 있습니다. 예를 들어, 프로그램에서 10명의 나이를 저장하여 다루고 싶다면, INT 변수를 10개 선언하여 각기 저장할 수 있습니다. 그러나 배열을 사용하면 10개의 변수 대신 하나의 배열만 선언하여 10명의 나이를 순차적으로 저장할 수 있습니다. 배열 사용 방법배열 선언 배열을 사용하려면 먼저 JAVA 배열 선언을 해야 합니다. 선언은 다음과 같습니다. 12345타입[] 배열이름; 또는..
C언어 포인터 이해하기 최근 JAVA나 C# 같은 언어는 GC 기능이 메모리 관리할 필요가 없습니다.하지만 OS 내장 프로그램을 만들고 싶을 때 피할 수 없는 것이 C언어입니다. 다른 프로그래밍 언어를 배우거나 배운 분들에게 낯설고 때로는 불쾌한 기분도 들게 만드는 게 C언어 포인터입니다. C언어를 배우려면 다른 언어에는 없는 포인터는 꼭 이해할 필요가 있습니다. 포인터 배우기 전에 포인터 배우기 전에 pointer를 이해하는데 필요한 것이 하나 있습니다. 바로 주소입니다.더 쉽게 말하자면 메모리 장소(위치)입니다. 프로그램을 작성할 때 변수 등을 선언하면 해당 변수는 데이터 형식에 따라 필요한 만큼 메모리 위치(크기)를 확보합니다. 이점은 C언어뿐만 아니라 다른 언어도 마찬가지이므로 기억해 두시면 손해..
셀은 매우 많은 함수를 제공합니다. 이 블로그에서는 VLOOKUP, HLOOKUP과 같은 데이터 검색 함수, SUM, PRODUCT와 같은 사칙연산 함수 등 여러 엑셀 함수 정리를 소개한 바 있습니다. 엑셀에서 사용되는 함수는 한 개의 글로서 설명하는 것이 불가능하기 때문에 이렇게 여러 개의 글로 나누어 작성하게 되었습니다. 이 글에서는 엑셀에서 자주 사용되는 조건 함수에 대하여 알아볼 것입니다. 조건 함수란 사용자가 지정한 조건에 부합하는 셀을 검색하는 기능과 본래 함수의 기능이 결합된 함수를 말합니다. 출처 : Walter's Library - 엑셀 함수 정리 조건 함수의 기본 IF엑셀에서 가장 많이 사용되는 조건 함수는 IF()입니다. IF 함수는 한 개의 조건을 지원하며, 해당 조건에 맞는 경우에..
오픈 소스 관계형 SQL 데이터베이스를 선택해야 할 경우 MariaDB / PostgreSQL 채용하는 경우가 많습니다. 이 포스트에서는 5가지 항목을 놓고 둘을 비교해 봅니다. 정규식 (regexp_replace)큰 차이는 없습니다. PostgreSQL 정규 표현식 플래그(flag) 등이 프로그래밍 언어(Perl 등의)에서 채택한 정규식과 가깝습니다. 마리아DB는 조금 다릅니다. MariaDB - https://mariadb.com/kb/en/library/regexp_replace/ 구문 : REGEXP_REPLACE (subject, pattern, replace) PostgreSQL - https://www.postgresql.org/docs/9.5/functions-matching.html 구문..
C언어를 다룰 때 포인터는 피할 수 없는 부분입니다. 능숙하게 사용할 수 있다면 프로그래밍 기술 폭이 넓어져 실력 올리기 좋습니다. 이 포스트에선 C언어 포인터의 기초부터 응용 방법까지 소개합니다. 포인터란포인터는C언어 포인터를 한마디로 표현하면 변수의 주소를 저장하는 변수입니다. 주소가 무엇이냐면 변수의 메모리상 위치(번지)를 의미합니다. 변수를 선언할 때 사용하는 컴퓨터의 메모리가 변수 크기만큼 할당됩니다. 이 메모리상의 위치를 나타내는 말이 주소입니다. 아래 그림에서 변수 "a" pointer는 10024입니다. 위의 예시에선 주소를 10 진수로 표기했지만, 일반적으론 16 진수로 표시합니다. 포인터 작성 방법C언어 포인터 변수 선언 방법은 변수 이름 앞에 "*"(별표)를 붙이는 것으로, 이렇게 선..
프로그램에서 조건 분기 처리는 필수입니다. C언어에서 조건 분기 제어문에는 여러 종류가 있지만, 이 포스트에서는 조건 분기 처리의 기본이 되는 C언어 if문 사용법을 소개합니다. 1. if문1-1. if문if문은 조건 분기 처리를 수행하는 명령어입니다. 구체적으로 "조건 A가 성립하는 경우 A를 수행한다"라는 것을 처리하려는 방법입니다. 다음은 C언어 if문을 작성하는 방법입니다. if (조건식) { (조건식이 성립하는 경우의 처리를 기술) } 1-2. 조건식은 bool로 판정if문에서 조건식은 bool로 판정합니다. 또한, 논리값은 다음과 같이 판정합니다. true : ≠ 0 (0이 아닌)false : 0 (0이다) ※ if문 뿐만 아니라 C언어 조건문 전반이 논리값으로 판정됩니다. 다음 예제를 살펴봅..