본문 바로가기

국비과정

(24)
[ANDROID 국비과정] 2023.02.08 - 안드로이드 앱 개발자 과정 Android 안드로이드 개발 안드로이드 앱을 개발하기 위해서는 안드로이드 스튜디오 라는 코드편집기가 필요합니다. 자바에서 코드 편집기로 eclipse 를 사용하고, 실행도구로 JRE, 컴파일러로 JDK 를 사용했던것과 비슷하게 안드로이드에서는 안드로이드 스튜디오라는 코드편집기를 사용합니다. 안드로이드 개발자 사이트에서 다운받을 수 있습니다. 편리하게도, 안드로이드 스튜디오를 다운받게되면 자동으로 JDK 가 설치됩니다. 또한 안드로이드에서는 추가적으로 Android SDK(Software Developement kit) 와 AVD(Android Virtual Device) 까지 설치하면 안드로이드 개발을 위한 준비는 끝납니다. 안드로이드 xml 검은색 화면의 글씨만 써내려가던 CLI 프로그래밍과 다르게 ..
[ANDROID 국비과정] 2023.02.07 - 안드로이드 앱 개발자 과정 Java GUI 프로그래밍 안드로이드로 넘어가기 이전에 GUI 프로그래밍에 대한 맛을 보기 위해 Java 언어에서 GUI 프로그래밍을 위해 미리 설계된 API 를 이용해보겠습니다. AWT, Swing, JavaFX 등이 있는데, 그중에서 Swing 을 이용하여 GUI 프로그래밍이 어떠한 방식을 취하는지에 대해 알아봅시다. 단, 문법적인 측면보다는 GUI 를 이용한 프로그래밍이라는것이 어떠한 것인지 알아보는것에 중점을 둡시다. 먼저, 지금까지 해왔던 CLI 프로그래밍의 경우 순차적인 방식을 취합니다. 코드가 한줄한줄 읽히면서 차례대로 콘솔에 출력되는 형태였습니다. 반면에 GUI 의 경우 사용자의 선택에 따라 반응을 설계해야 하는 방식입니다. 가령, 사용자가 어떠한 버튼하나를 눌렀을 경우에 어떠한 결과를 도..
[ANDROID 국비과정] 2023.02.06 - 안드로이드 앱 개발자 과정 Java Network 인터넷은 어떻게 동작하는가? 인터넷은 어떻게 동작하는가? - Web 개발 학습하기 | MDN 이 글에서는 인터넷의 개념과 작동 원리에 대해 설명합니다. developer.mozilla.org 네트워크란 쉽게 말해 하나의 망 입니다. 그리고 그 망을 이용하여 서로 다른 컴퓨터들을 연결합니다. 라우터에 의하여 컴퓨터들은 네트워크를 형성하며, 이러한 라우터들이 ISP 에 연결되어 더욱 큰 네트워크를 형성합니다. 컴퓨터간의 정보 교환은 아주 방대한 양이며, 무질서할 수 있는데 이를 해결하기 위해 우리는 일종의 약속을 해야합니다. 그러한 약속을 프로토콜(Protocol) 이라 합니다. 프로토콜의 종류 1.IP[ Internet Protocol ] 2.TCP[ Transmission Cont..
[ANDROID 국비과정] 2023.02.03 - 안드로이드 앱 개발자 과정 Java File I/O - 바이트스트림 기억장치에는 CPU 가 접근하는 주메모리(RAM)와 영구적 저장을 위한 보조기억장치(HDD)가 있습니다. 램의 경우 컴퓨터의 전원을 끄거나 프로그램을 끄면, 데이터가 모두 날아가게 됩니다. 하지만 우리의 목적은 데이터의 영구적인 저장입니다. 그래서 우리는 데이터를 파일로 만들어 저장합니다. Window OS 에서의 보조기억장치인 하드디스크(HDD) 사용법을 기반으로 파일의 영구적 저장방법을 알아보겠습니다. 하드디스크는 램과 달리 데이터로 보관하는것이 아니라 파일의 형태로 보관합니다. 또한 파일의 식별자로 파일의 이름과 확장자를 사용할 수 있습니다. 예를 들어 간단한 문자열을 저장하고 싶다면, aaa.txt 와 같이 저장시킬 수 있죠. 이와 같이 파일의 저장과 출력..
[ANDROID 국비과정] 2023.02.02 - 안드로이드 앱 개발자 과정 Java Thread 작성된 코드를 실행하는 객체 : 동시에 여러작업을 처리하는 기법 Thread 란? 스레드란, 동시에 여러작업을 처리하고 싶을 때 사용하는 기법으로 작성된 코드를 실행하는 객체 입니다. 무엇인지 정확히 알아보기 이전에 간단한 용어 먼저 정리하겠습니다. 용어정리 process 실행중인 하나의 자바 프로그램. 프로세스 간에는 별도의 메모리를 사용하므로 자원 공유가 불가합니다. Thread 하나의 프로세스 안에서 동작하는 직원같은 개념입니다. 스레드간에는 같은 메모리 공간을 사용하므로 자원 공유가 가능합니다. Main Thread 하나의 프로세스에는 반드시 하나의 스레드가 존재합니다. 그 스레드를 Main Thread 라고 합니다. 만일, 메인스레드가 시간이 오래 걸리는 작업을 수행한다고 ..
[ANDROID 국비과정] 2023.02.01 - 안드로이드 앱 개발자 과정 JAVA 제네릭 (Generic) Class 를 설계할 때 멤버의 자료형을 정하지 않고 객체를 생성할 때 자료형을 정하도록 하는 문법입니다. Generic 이란 아직 명칭이 정해지지 않은 상품이란 뜻을 가지고 있습니다. 프로그래밍적인 의미로도 동일합니다. 즉, 멤버의 자료형이 정해지지 않았다는 의미입니다. Generic 사용하기 먼저, 멤버의 자료형이 정해지지 않은 클래스를 설계해봅시다. public class Box { T a; } 안에 자료형을 작성하고 그 자료형을 토대로 멤버를 설정합니다. 안에 자료형은 어떤 단어든 상관없습니다. (물론 String 과 같은 예약어는 사용하지 않아야 하겠습니다.) 그리고 Main 클래스에서 Box 클래스의 객체를 생성해봅시다. public static void ma..
[ANDROID 국비과정] 2023.01.31 - 안드로이드 앱 개발자 과정 JAVA Object class 모든 Java 클래스의 부모 클래스 (최상위 클래스) 단군 할아버지 Object 자바 언어에 존재하는 모든 클래스들은 extends 의 명시여부와 상관없이 무조건 Object 라는 클래스를 상속받은 상태로 만들어 집니다. Test 클래스를 설계해봅시다. -------------- Test.java public class Test { int a = 10; } -------------- Main.java public class Main { public static void Main (String[] args) { Test t = new Test(); } } Test 클래스는 명시적으로는 아무 클래스도 상속하지 않았습니다. 그러나 기본적으로 Object 클래스를 상속받고 있습니..
[ANDROID 국비과정] 2023.01.30 - 안드로이드 앱 개발자 과정 JAVA 다형성 (Polymorphism) 위키피디아에 따르면 다형성의 정의는 다음과 같습니다. 프로그램 언어의 다형성은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. 반댓말은 단형성으로, 프로그램 언어의 각 요소가 한가지 형태만 가지는 성질을 가리킨다. 말이 좀 어려운데, 다시 말하면 하나의 객체에 여러가지 타입을 대입할 수 있다는 의미라고 볼 수 있습니다. 말로만 하면 어떤 의미 인지 잘 와닿지 않기 때문에 실제로 적용되는 모습을 관찰해봅시다. 업캐스팅(UpCasting) , 다운캐스팅(DownCasting) 먼저, 캐스팅(Casting) 의 ..