본 포스팅은 학교에서 수업을 듣고 정리한 내용입니다. 프로그램 개발 과정 복잡한 프로그램을 만들 때는 위와 같은 세부적인 과정을 거치게 된다. 설계 문제를 해결하는 알고리즘을 개발하는 단계 순서도와 의사 코드를 도구로 사용 알고리즘은 프로그래밍 언어와는 무관 알고리즘은 원하는 결과를 얻기 위하여 밟아야 하는 단계에 집중적으로 초점을 맞추는 것 소스 작성 알고리즘의 각 단계를 프로그래밍 언어를 이용하여 기술 알고리즘을 프로그래밍 언어의 문법에 맞추어 기술한 것을 소스 프로그램(Source Program) 소스 프로그램은 주로 텍스트 에디터나 통합 개발 환경을 이용하여 작성 소스 파일 이름 : Ex) test.c 컴파일 소스 프로그램을 오브젝트 파일로 변환하는 작업 오브젝트 파일 이름 : Ex) test.o..
Java에서 'synchronized' 키워드는 자바 언어의 초기 버전부터 지원되었습니다. 자바는 1995년 처음으로 발표되었고, 그때부터 'synchronized' 키워드를 사용하여 스레드 동기화를 제어하는 데 사용할 수 있었습니다. 따라서 Java 1.0부터 'synchronized' 키워드가 존재하게 됩니다. 그렇다면 'synchronized' 란 뭘까? 'synchronized' 는 Java 프로그래밍 언어에서 스레드 동기화를 구현하는데 사용되는 키워드 입니다. 스레드 동기화는 여러 스레드가 공유자원에 동시에 접근하려는 경우 발생하는 경쟁 조건과 같은 문제를 방지하고 스레드 간의 작업을 조절하기 위해 사용됩니다. 'synchronized' 키워드는 다음 두가지 주요 방법으로 사용됩니다. 메소드 레..
파이썬이란파이썬(Python)은 1990년 암스테르담의 귀도 반 로섬(Guido van rossum)이 개발한 인터프리터 언어이다. 귀도는 파이썬이라는 이름을 자신이 좋아하는 코미디 쇼인 ‘몬티 파이썬의 날아다니는 서커스(Monty python's flying circus)’에서 따왔다고 한다. 인터프리터 언어란소스 코드를 한 줄씩 해선한 후 그때그때 실행해 결과를 바로 확인할 수 있는 언어를 말한다. 인터프리터(interpreter)란, 우리말로 '통역사'라는 뜻이다. 우리가 컴퓨터에 명령을 내리면 한 줄씩 즉시 통역사가 컴퓨터 언어로 바꿔주는 거라고 생각하면 된다. 규모가 큰 소스의 경우, 컴파일 언어는 프로그램 실행 전 먼저 기계어로 컴파일하는 데 시간이 오래 걸릴 수 있는데 인터프리터 언어는 코드..
본 포스팅은 학교에서 수업을 듣고 정리한 내용입니다. 일반적인 프로그램의 형태 데이터를 받아서(입력단계), 데이터를 처리한 후에(처리단계), 결과를 화면에 출력(출력단계)한다. C언어 기본 프로그래밍 #include int main(int argc, const char * argv[]) { int x; int y; x = 100; y = 200; int sum = x + y; printf("두수의 합 : %d", sum); return 0; } 주석 프로그래머가 코드작성시에 필요한 메모를 작성하고 싶을 때 사용한다. 단, 주석의 경우 프로그램 컴파일 시에 영향을 끼치지 않는다. 그래서 필요한 내용을 양 껏 작성 가능하다. /* 한 줄로 된 주석 */ /* ------------------------ 저자..
Bit, Byte, 2진수 컴퓨터 시스템에는 여러개의 구멍이 존재한다. 그리고 이를 전기에 연결되어있으면 1, 연결되어 있지않으면 0이라고 사람이 임의로 정의한 것이다. 그리고 bit는 기본적으로 2진수 한 자리를 표현하며 0과 1 두가지로 표현된다. 1 byte = 8 bit 1 byte는 8 bit인데, 그 절반인 4 bit 는 이진수 4자리이고(비트가 2진수), 16진수 한자리가 된다. 즉 4 bit로 1~16까지 표현이 가능하다. int x = 10; // Int에서는 4Byte의 메모리 공간을 차지한다. 즉 32Bit만큼 메모리를 차지한다.
지금까지 코틀린을 이용하여 앱개발을 하면서도 코틀린이란 무엇인지에 대해서 명확히 알고 넘어가지는 않았던 것 같다. 그래서 이번에는 코틀린에 대해서 공부를 해보자. 코틀린이란 무엇인가 코틀린은 안정성, 간결성, 상호 운용성을 강조하는 다중 패러다임, 다중 플랫폼 프로그래밍 언어이다. 2010년 하반기에 처음 생겨서 2016년 2월 처음으로 공개 릴리스되었으며, 안드로이드 개발, 데스크톱 애플리케이션, 서버 측 솔루션 등 여러 개발 분야에서 유망한 도구로 꾸준히 인기를 얻고 있다. 2019년 11월 코틀린 1.3이 나왔고, 2021년 5월 1.5.0이 나왔다. 지금 현재는 1.8.21.이다(2023년 8월 21일 기준) 원래 언어를 만든 목적, 즉 자바에 대해 더 나은 대안을 제공하려는 목적을 넘어 코틀린이..
JVM이란 운영체제는 자바 프로그램을 바로 실행할 수 없는데, 그 이유는 자바 프로그램은 완전한 기계어가 아닌, 중간 단계의 바이트 코드이기 때문이다. 이것을 해석하고 실행 할 수 있는 가상의 운영체제가 필요하다. 이것이 자바 가상 기계(JVM : Java Virtual Machine)이다. JVM은 실 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 한다. 자바 프로그램은 확장자가 .java인 파일을 작성하는 것부터 시작된다. 이것을 소스 파일이라고 하는데, 이 소스 파일을 컴파일러로(javac.exe)로 컴파일하면 확장자가 .class인 바이트 코드 파일이 생성된다. 바이트 코드 파일은 JVM 구동 명령어(java.exe)에 의해 JVM에서 해석되고 해당 운영체제에 맞게 기계어로 ..
var, val 이란 val : 불변 변수로, 값의 읽기만 허용되는 변수. Value의 약자이다. var : 가변 변수로 값의 읽기와 쓰기가 모두 허용되는 변수, Variable의 약자이다. 변수는 값을 저장하는 메모리 공간에 붙는 이름이다. 코틀린에는 두가지의 형을 지원하게 되는데 위에서 설명한 val과 var이다. 위에서 설명한 것 처럼 val과 var은 각각 불변 변수와 가변 변수를 나타내고 있고, 공통적으로 초기화시에 값을 할당하지 않는다면 반드시 Type명시해야한다. 다만 컴파일러가 변수 탕비을 추론할 수 있는 경우에는 Type를 생략해도 된다. val val로 지정된 불변 타입 변수는 초기에 값을 할당되면 나중에 값을 변경할 수 없다. 강제로 변수를 변경하려고 한다면 컴파일 에러가 발생한다. ..