728x90

전체 글 163

운영체제 (Operating System) / 역할 / 구조 / 종류

이번 포스팅에서는 CS의 기초라 할 수 있는 운영체제에 대해 알아보겠다. 운영체제의 정의 운영체제의 명확한 정의는 전공 서적이나 위키별로 조금씩 다르다. ● 네이버 지식백과 : 모든 하드웨어 · 소프트웨어를 관리하는 실행 관리자 ● 나무위키 : 사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스 ● 위키백과 : 하드웨어 · 시스템 자원을 제어하고 프로그램에 대한 서비스를 지원하는 소프트웨어 ● 경북대학교 : 응용 프로그램 또는 사용자가 하드웨어를 편리하고 효율적으로 사용하게 하기 위하여 시스템 자원을 관리하고, 여러가지 프로그램이 필요로 하는 공통적인 서비스를 제공하는 소프트웨어 대부분의 정의를 보면 느끼겠지만, 운영체제를 한 줄 정의하기엔 벅찬 느낌이다. 경북대 강의 개요에 기재된 정의처럼, 길게 ..

Computer Science 2024.04.10

[Java] 데이터 직렬화 / Serializable

이번 포스팅에서는 데이터 직렬화에 대해 알아보자. 직렬화란? 메모리에 있는 데이터를 네트워크 통신으로 전달하거나 디스크 등에 저장하기 위한 형식으로 변환하는 것을 말한다. 여기서 말하는 데이터 형식은 바이트 스트림이며, Java의 최소 단위인 Byte 형태의 연속적인 데이터로 변환한 것이다. 직렬화의 반대 경우를 역직렬화라고 하며 전달 받거나 저장된 바이트 스트림을 메모리에 적재할 수 있도록 다시 변환하는 것을 말한다. 직렬화가 필요한 이유 아무래도 메모리 내 데이터를 다루는 내용이기에, 메모리의 Stack · Heap 영역에 대한 기본적인 지식이 없다면 다음 포스팅을 참고하면 도움이 될 것이다. [Java] JVM 메모리 할당 방식 - Stack · Heap Memory 지난 포스팅에서 JDK · JR..

Java (자바) 2024.03.30

[Java] Set / 자료 구조 / 예제

이번 포스팅에서는 Set에 대해 알아보자. Set ? *Set : 세트, 집합 등 특정한 값을 저장하는 자료 구조 중 하나다. Set을 이야기할 때는 자연스레 List 자료 구조와 비교하게 된다. List : 데이터를 저장하는 순서가 정해져 있으며, 중복된 값을 저장할 수 있다. Set : 데이터를 저장하는 순서가 없으며, 중복된 값을 저장할 수 없다. 위 내용만 보아도, 확실히 두 자료 구조는 반대의 성격을 띄고 있다고 볼 수 있다. Set 자체는 인터페이스로 제공되며, 다음과 같은 종류의 클래스로 구현할 수 있다. ● HashSet Set의 대표 클래스라 할 수 있다. 위에서 설명한 대로, 데이터를 중복 저장할 수 없고 저장 순서도 없다. ● TreeSet 데이터가 오름 차순으로 정렬되어 저장된다. ..

Java (자바) 2024.03.26

[Java] Pair / 자료 구조 / 2개의 데이터 관리하기

이번 포스팅에서는 Pair 클래스에 대해 알아보자. Pair ? 안드로이드 관련 서적을 읽던 중 Pair라는 자료구조를 처음 만나게 되었다. 해당 코드는 2가지 데이터를 관리하는 단순한 구조였다. *Pair : 한 짝, 한 쌍 사전적 정의를 듣고 보니 포커 족보의 원·투 페어가 이 페어인 것 같다. 별도의 데이터 클래스를 생성할 필요 없이 2개의 데이터를 관리할 수 있기에 편리해 보였다. Pair 클래스는 Java 8 버전부터 추가된 클래스이며, 그 이전까지는 외부 라이브러리를 통해 사용되었다. 단순히 2가지의 데이터를 다룰 때 주로 사용된다. 이는 Key - Value 형태로 볼 수도 있고, First - Second 형태로 볼 수도 있다. 개인적인 견해로는 First - Second 형태에 더 가깝다..

Java (자바) 2024.03.25

git flow / git branch 관리하기

이번 포스팅에서는 git flow에 대해 알아보겠다. git flow 란? git flow를 알아보기 전, git에 대한 이해가 부족하다면 이전 포스팅을 참고하기 바란다. git 이란 무엇일까? / git 을 사용해보자 ✅ git이란 무엇일까? ● 리누스 토르발스가 개발한 버전 관리 시스템 * 리누스 토르발스 : 리눅스 창시자 버전 관리 시스템이란, 소스 코드를 보다 효율적으로 관리하기 위한 시스템이다. 문서 oscarstory.tistory.com *flow : 흐름 git flow는 git에서 제공하는 브랜칭 기능을 관리하는 전략이라고 볼 수 있다. git flow는 다음 5가지 브랜치를 사용한다. main(master) : 사용자들에게 배포된(배포할) 브랜치 release : QA 작업 등이 이루어..

git 2024.03.13

[Android] strings.xml / colors.xml / string · color 파일 참조

아직도 위와 같이 텍스트를 작성하고 있는 사람?? 노란색 경고창은 가볍게 생각하고 넘어가는 사람도 많다. 하지만 가벼운 경고라도 다 이유가 있으니 표시해 주는 게 아닐까? 경고 내용을 살펴보면 '하드코딩 되었으니, @string 리소스를 사용해' 라는 내용이다. 이번 포스팅에서는 values 패키지에 있는 리소스 파일을 알아보자. strings.xml 안드로이드 스튜디오 좌측 프로젝트 탭에서 res > values 패키지 속에 있는 strings.xml 파일을 찾아보자. 파일을 열어보면 대충 다음과 같은 내용이 적혀 있을 것이다. 앱 이름 ... 이 파일에 앱에 들어갈 웬만한 텍스트를 정리해주면 된다. ... 제목 텍스트 완료 위와 같이 작성했다고 가정하고, 레이아웃 파일을 보자. strings.xml ..

[Android] onBackPressed / OnBackPressedDispatcher / 기기 · 시스템 뒤로가기 버튼 / 두 번 눌러서 뒤로가기

기기의 뒤로 가기 버튼을 눌렀을 때 발생하는 이벤트를 제어해보자. 안드로이드 기기라면 모두 갖고 있는 위 버튼이다. onBackPressed 기본적으로 액티비티는 AppCompatActivity를 상속하기에, 다음과 같이 onBackPressed() 메서드를 @Override하여 사용할 수 있다. @Override public void onBackPressed() { super.onBackPressed(); } 위 코드만 작성하고 실행해보면 달라진 것이 없을 것이다. super.onBackPressed()를 지워주고, 작업을 추가해보자. @Override public void onBackPressed() { Toast.makeText(this, "한 번 더 누르면 종료됩니다.", Toast.LENGTH_..

[Android] Google AdMob / 앱에 광고 붙이기 / 배너 광고

이번 포스팅에서는 앱에 광고 붙이는 방법을 알아보겠다. 광고는 Google AdMob을 사용할 것이다. Google AdMob ? Google AdMob은 앱으로 수익을 창출하려고 할 때 사용할 수 있는 모바일 광고 플랫폼이다. 개발자가 AdMob 플랫폼에 앱과 광고 단위를 등록하면 Google AdMob에서 사용자에게 알맞은 광고를 띄워준다. 즉, 개발자는 어떤 광고가 띄워질지는 모른다. 노출 수에 비례하는 수익을 창출하는 원리이며, 개발자는 AdMob 콘솔에서 광고 활동 보고서를 통해 세부 내용을 확인할 수 있다. 사용할 수 있는 광고 단위는 다음과 같다. 이번 포스팅에서는 배너 광고를 달아볼 것이다. 앱 적용 프로세스 크게 2가지 단계로 나누어 실습해보자. ✅ AdMob 콘솔에서의 작업 ● AdMo..

728x90