[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

분류 전체보기 495

[운영체제] 다중 프로그래밍 / 시분할 시스템 / 실시간 시스템

다중 프로그래밍 메모리의 사용자영역에 프로그램이 여러개 탑재되어 있고, CPU가 이를 번갈아가며 수행한다. 어떤 프로그램을 수행하다 입출력이 발생하면 해당 입출력이 처리되는 동안 CPU가 다른 프로그램을 수행하는 방식이다. 여러 프로그램 중 어떤 프로그램을 선택할지는 '스케쥴링'을 통해 해결한다. 이는 적절한 정책을 통해 다음 프로그램을 결정해준다. 이러한 프로세스는 각 프로그램이 입출력이 발생할 때만 발생된다. 즉, 다른 프로그램으로 작업이 이동되려면 하나의 프로그램이 입출력이 발생해야 한다. 만약 하나의 프로그램에서 무한 루프가 발생된다면 스케쥴링도 일어나지 않아 나머지 프로그램도 돌아가지 않는다. 즉, 다중 프로그래밍 방식에서는 프로그램 간 간섭이 존재한다. 대부분의 프로그램 실행시간..

[운영체제] 운영체제의 필요성 / 일괄 처리 시스템

운영체제의 필요성과 목적 메모리나 CPU와 같은 자원은 한정되어 있지만, 사용자는 충분히 무한할 수 있다. -> 이에 따라 이러한 사용자들의 자원 사용을 조율하기 위한 '운영자의 정책'이 필요하다. 다양한 사용자를 받아들여 최적의 사용율을 보이는 '효율성'과 각각 사용자로서 하여금 불편함이 없을 만큼의 '편의성'을 둘 다 추구해야 한다. 하지만 이 둘은 결국 상반된 개념이다. 한 사용자의 편의성을 위해 자원을 한 사용자에게만 주면 결국 자원을 효율적으로 사용하지 못하는 것이고, 모두에게 자원을 똑같이 분배하면 사용자가 많아질수록 사용에 불편을 겪을 수 있기 때문이다. 따라서 이 두 양극의 최적점을 찾는 것이 중요하다. 정리하면 운영체제는 사용자 관점의 편의성, ..

프론트엔드와 백엔드의 기본

프론트엔드 : 실제 유저들이 사용하게 되는 웹,앱 웹서버 웹을 제공해주는 서버. 보통 웹서버에서 제공하는 것은 HTML,CSS,Javascript가 합쳐져 있는 하나의 정적인 웹이다. 백엔드 서버와 헷갈려선 안된다. 웹서버는 웹 정보(프론트엔드 정보)를 제공해주고, 백엔드 서버는 필요한 데이터를 제공해준다. 브라우저가 웹서버에서 이러한 웹을 다운받아 화면에 보여준다. 앱은 웹서버가 존재하지 않는다. 대신 프론트엔드 정보를 앱스토어에서 받아오니, 앱스터가 웹서버의 역할을 한다고 볼 수 있다. 반응형웹 여러 디바이스에 맞춰 크기가 변경하는 웹 CDN 네트워크도 결국은 물리적인 신호로 통신을 수행하기 때문에, 거리가 멀수록 시간이 오래 걸린다. 이를 해결하기 위해 CDN(Contents Delivery Net..

[알고리즘 연습] 시청방해자 (by C++)

시청방해자 영화관에 사람이 일렬로 앉아있다고 가정하고, 앉은 키가 뒷 사람 모두보다 더 커서 뒷사람 모두에게 피해를 주는 사람의 수를 세자. 사람의 수 N을 입력받고, N명의 사람의 앉은 키를 입력받는다. 예를 들어, 10을 입력받고 56 46 55 76 65 53 52 53 55 50을 입력받으면, 뒷 사람 모두의 키보다 큰 인원은 3이므로 3을 출력한다. 풀이 (단순 접근) #include int main() { //freopen("input.txt", "rt", stdin); int n,i,j,tmp,res = 0, flag = 1; int h[101]; scanf("%d", &n); for(i=0; i

[알고리즘 연습] 아나그램 (by C++)

아나그램 두 문자열이 알파벳의 나열 순서를 다르지만 그 구성이 일치하면 두 단어는 아나그램이라고 한다. 예를 들어, AbaAeCe 와 baeeACA는 아나그램이다. 두 문자열을 받고, 두 문자열이 아나그램이면 'YES'를, 아나그램이 아니면 'NO'를 출력한다. 풀이1 #include int main() { freopen("input.txt", "rt", stdin); char a[101],b[101]; int i,j,flag=1; scanf("%s", &a); scanf("%s", &b); for (i = 0; a[i] != '\0'; i++) { for (j = 0; b[j] != '\0'; j++) { if (a[i] == b[j]) { b[j] = '0'; break; } } } for(i=0; ..

개발자의 기본

개발이란 기획, 디자인, 개발 기획자 : 세상에 이런 제품이 있으면 좋겠다. 우리 제품에 이런 기능이 있으면 좋겠다. 디자이너 : 제품 또는 기능을 눈에 보이게 만들자. 개발자 : 제품 또는 기능을 실제로 사용할 수 있게 만들어보자. 다양한 개발자 서버 개발자(백 엔드) : 사용자의 정보를 서버로 넘겨줌으로써, 사용을 멈추고 다양한 디바이스에서 다시 사용을 시작하더라도 기존의 정보들을 불러와 활용할 수 있다. 그리고 서버에서 사용자들의 정보를 불러오고 송출함으로써, 사용자들간의 정보를 공유할 수도 있다. 이러한 서버를 개발한다. 클라이언트 개발자(프론트 엔드) : GUI(Graphic User Interface), 사용자가 실질적으로 보게되는 인터페이스 부분을 개발한다. 안드로이드, IOS, 웹 세 가지..

[알고리즘 연습] 소수의 개수 (by C++)

소수의 개수 자연수 N을 입력하면 1~N까지의 수 중 소수를 찾아 출력해준다. 예를 들어, 20이 입력되면 2, 3, 5, 7, 11, 13, 17, 19 총 8개의 소수가 출력된다. 시간 제한이 짧다고 가정하고 최대한 효율적인 알고리즘을 생각해보자. 풀이1 #include int a[200001]; int main() { //freopen("input.txt", "rt", stdin); int n, i, j, res = 0; scanf("%d", &n); for(i = 1; i

[알고리즘 연습] 뒤집은 숫자의 소수 여부 판단 (by C++)

가장 많이 사용된 자릿수뒤집은 숫자의 소수 여부 판단 N을 입력받고 N개의 자연수를 입력받는다. 자연수를 뒤집고 소수 여부를 판단하여, 소수일 경우 출력한다. 예를 들어, 910을 뒤집으면 19로 바꾸어 판단해야 한다. 예를 들어, 5을 입력하고 32 55 62 3700 250을 입력하면 23과 73이 출력된다. 풀이 #include int reverse(int x) { int res=0, tmp; while(x > 0) { tmp = x % 10; res = res * 10 + tmp; x = x / 10; } return res; } bool isPrime(int x) { int i; if (x == 1) { return false; } for(i=2; i

[알고리즘 연습] 가장 많이 사용된 자릿수 (by C++)

가장 많이 사용된 자릿수 N자리의 자연수가 입력되면 해당 자연수에서 가장 많이 사용된 자릿수를 출력한다. 답이 여러개일 경우 가장 큰 수를 출력한다. 예를 들어 1230565625라는 자연수가 입력되면 5가 3번 사용되어 가장 많이 사용된 자릿수이므로 5가 출력된다. 풀이 #include int ch[10]; int main() { freopen("input.txt", "rt", stdin); int i, digit, max = -2147000000, res; char a[101]; scanf("%s", &a); for (i=0;a[i]!='\0';i++) { digit = a[i] - 48; ch[digit]++; } for(i=0;i= max) { max = ch[i]; res = i; } } pri..

[알고리즘 연습] 숫자의 총 개수 (by C++)

숫자의 총 개수 특정 숫자 n을 받아서 1~n까지 숫자가 총 몇개 쓰였는지 출력한다. 예를 들어, 15를 입력할 경우 1부터 15까지 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5으로 총 21개가 쓰였으므로 21이 출력된다. 풀이 (단순 접근) #include int main() { //freopen("input.txt", "rt", stdin); int n, i, j, sum = 0; scanf("%d", &n); for(i=1;i 0;j = j/10) { sum++; } } printf("%d",sum); return 0; } - 가장 간단하게 위와 같은 코드를 작성할 수 있다. - 단, 해당 코드는 효율이 좋지 못하여 매우 큰 숫자가 ..

반응형