분류 전체보기 (127) 썸네일형 리스트형 [JAVA 기초] Static과 Public 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) JAVA에서 프로그램이란 클래스의 집합입니다. 클래스 외부에 존재할 수 있는 건 아무것도 없습니다. static 멤버 = class 멤버 non-static 멤버 = object 멤버 main 함수 없이 클래스만으로는 프로그램이 진행될 수 없습니다. 때문에 main 함수가 꼭 필요한데, 프로그램을 진행하는 main 함수를 다른 클래스에서 사용한다면 문제가 발생하기 때문에 main 메서드는 반드시 static이어야합니다. 클래스에 소속되어있는 멤버인 static 멤버는 오직 static 멤버만 사용할 수 있습니다. 때문에 main 메서드에서 non-static 멤버에 접근하려면 해당 클래스의 객체를 new를 통해 생성한 뒤에 그.. [JAVA] Recursion 응용: Counting Cells in a Blob 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 흑백으로 구성된 Binary 이미지에서, 서로 연결된 image pixel의 집합을 blob이라고 합니다. 이번 포스팅의 제목인 Counting cells in a blob은, Binary 이미지에서 임의의 한 점으로부터 그 점이 포함된 Blob의 크기를 구하는 작업을 의미합니다. Blob의 count를 계산하는 방법 역시 Recursion을 이용합니다. 위의 그림과 같이 하나의 좌표가 주어졌을 때, 그 픽셀을 둘러싸는 8개의 픽셀들을 대상으로 blob을 COUNT 하는 함수를 재귀 호출하고, count 한 cell에 대해서는 색을 바꿔 이후에 중복으로 count 되는 걸 방지합니다. public class CountCell .. [JAVA] Recursion 응용: 미로찾기 이번 포스팅에서는 미로가 주어졌을 때 재귀(Recursion)를 통해 경로를 찾는 방법에 대해 알아보겠습니다. 현재 위치에서 출구까지 가는 경로가 있으려면 1) 현재 위치가 출구이거나 혹은 2) 이웃한 셀들 중 하나에서 현재 위치를 지나지 않고 출구까지 가는 경로가 있거나 위의 1번과 2번을 모두 적용해서 답을 찾아야 합니다. 이동할 위치의 셀이 통로에 속한 셀이면서 2번을 적용할 수 있을 때 Recursion 실행합니다. KEY. 이 Recursion이 무한루프에 빠지지는 않는지 확인해야 합니다! 때문에 Base case가 반드시 필요합니다. 이 문제 같은 경우는 한 칸 이동을 한 다음에 다시 자신이 왔던 것으로 돌아가며 무한 루프에 빠질 위험이 존재합니다. public class Maze { priv.. [운영체제] System Structure & Program Execution(2) CPU 내부에는 레지스터 중에서 메모리의 주소를 가리키는 레지스터가 존재. CPU는 이 프로그램 카운터 레지스터가 가리키는 메모리의 위치에서 인스트럭션을 읽어와서 그 기계어를 실행. 인스트럭션 하나가 4바이트 정도. CPU가 인스트럭션 하나를 실행하면 카운터가 4가 증가(인스트럭션 하나의 크기). 특별한 일이 없으면 메모리에 있는 다음 인스트럭션을 순차적으로 실행. 하지만 어떤 호출에 의해 점프를 통해 다른 명령을 실행할 수도 있음. CPU는 인스트럭션을 처리하고 다음 인스트럭션을 처리하기 전에 꼭 인터럽트가 들어온 게 있는지 확인함. 인터럽트가 있다면 작업을 멈추고 CPU 제어권이 운영체제에게 넘어감. 그럼 운영체제 속의 커널 함수에 인터럽트를 파악하는 기능 저장. 인터럽트 벡터에 인터럽트 분류 번호와.. [React Native] Weather APP Expo -> Native 파일을 숨겨주고 휴대폰에서 테스트 가능. but Native 파일을 크게 관리하기 어려움 * App 개발 3-ways 1. Swift, C#(iOS) / JAVA, Kotlin(Android) 기반 2. 반응형 웹 페이지를 그대로 앱 안에 3. iOS, Android 모두 JavsScript 엔진을 가지고 있음. 이걸 기반. 브릿지를 이용해서 JS코드를 리액트 네이티브에게 보냄. 항상 브릿지가 있어야 해서 속도가 느려질 수 있음. 게임을 만들 땐 그리 좋지 않음; React-Native에서 모든 실행 코드는 태그 안에서 동작함. 텍스트 입력은 대신 코드 사용 why? 브릿지 때문에 container 안에서만 다른 stylesheet가 동작함 flex: 1 -> 한 칸을 전체 다.. [운영체제] System Structure & Program Execution(1) 컴퓨터의 하드웨어적인 동작 원리 메모리: CPU의 작업 공간. 기계어를 실행. CPU: 매 클럭 사이클마다 메모리에서 기계어(Instruction)를 읽어서 실행. 그리고 다음 기계어를 읽어서 처리. 레지스터: CPU 안에 존재하는 작은 저장공간. 메모리보다 속보가 빠름. I/O 디바이스에 직업 접근하지 않음. 오직 메모리와만 일함. 만약 CPU에서 디스크 등등에 접근할 필요가 생기면 device 컨트롤러에게 요청. 그럼 디스크에서 정보를 가져와서 local buffer에 저장. 이 사이에 CPU는 계속 자신의 작업 연산 처리. 하나의 프로그램을 끝내면 다음 프로그램으로 매우 빠르게 전환. 사용자 입장에서는 굉장히 interactive 하게 보임 그런데 for문, while문 등등으로 인해 무한루프에 빠.. [C언어] 연결리스트 - 다항식(2) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 이번 포스팅은 저번 다항식 포스팅에 이어 다항식을 다루는 여러 방법에 대해 알아보겠습니다. 0. 전체 프로세스 커맨드 void process_command() { char command_line[BUFFER_LENGTH]; char copied[BUFFER_LENGTH]; // 배열 형태의 문자열 char* command, * arg1, * arg2; while (1) { printf("$ "); if (read_line(stdin, command_line, BUFFER_LENGTH) first; while (t != NULL) { result += eval(t, x); t = t->next;// 각 Term에서 eval을 실.. [C언어] 연결리스트 - 다항식(1) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 이번 포스팅에서는 연결 리스트를 이용하여 다항식을 구현하는 방법에 대해 알아보겠습니다. 연결 리스트를 통해 구현하려는 다항식의 특성은 위와 같습니다. struct term// 다항식에서 차수마다 항을 구성하는 term 구조체 { int coef; // 계수 int expo; // 지수, 차수 struct term* next; }; typedef struct term Term; typedef struct Polynomial // 함수의 이름과 시작 주소를 저장하는 Polynomial 구조체 { char name;// 다항식의 이름 Term* first;// 다항식 첫번째 항의 주소 int size;// 항의 개수 } Polyno.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 16 다음