[TIL/정처기] 2025/04/02
21년 2회 기출 코드 정리 ✍️21-2-7-Python ⚙️비트 연산자(시프트 연산 포함)를 사용하면 정수는 자동으로 이진수로 변환되어 처리된다. 첫 번째 루프를 돌았을 때 result는 51, 두 번째 루프까지 돌았을 때 result는 26이 된다. 따라서 최종 결
21년 2회 기출 코드 정리 ✍️
21-2-7-Python ⚙️
a = 100
result = 0
for i in range(1,3):
result = a >> i
result = result + 1
print(result)비트 연산자(시프트 연산 포함)를 사용하면 정수는 자동으로 이진수로 변환되어 처리된다. 첫 번째 루프를 돌았을 때 result는 51, 두 번째 루프까지 돌았을 때 result는 26이 된다. 따라서 최종 결과는 26.
21-2-16-C ⚙️
#include <stdio.h>
main() {
int res = mp(2, 10);
printf("%d", res);
}
int mp(int base, int exp) {
int res = 1;
for(int i = 0; i < exp; i++)
res *= base;
return res;
}2의 10승(1024)를 출력하는 코드. 단순 연산이고, 특별한 논점은 없다.
21-2-17-JAVA ⚙️
public class Test {
public static void main(String[] args) {
System.out.println(Test.check(1));
}
static String check(int num) {
return (num >= 0) ? "positive" : "negative";
}
}String check 앞에, static을 적을 수 있는지 묻는 코드였다.
main 메서드에서 별도의 객체 생성 없이 Test.check(1)를 통해 직접 호출하는 모습을 확인할 수 있다. static 키워드가 붙어 있으면, 클래스의 인스턴스를 생성하지 않고도 직접 호출할 수 있게 된다. 당연히 출력 결과는 positive다.
21-2-18-C ⚙️
#include <stdio.h>
int main() {
int ary[3];
int s = 0;
*(ary + 0) = 1;
ary[1] = *(ary + 0) + 2;
ary[2] = *ary + 3;
for(int i = 0; i < 3; i++)
s = s + ary[i];
printf("%d", s);
}C 언어에서의 배열과 포인터의 관계에 대해 묻는 기초적인 코드. 최종 출력 결과는 8이다.
21-2-19-JAVA ⚙️
public class ovr1 {
public static void main(String[] args) {
ovr1 a1 = new ovr1();
ovr2 a2 = new ovr2();
System.out.println(a1.sun(3, 2) + a2.sun(3, 2));
}
int sun(int x, int y) {
return x + y;
}
}
class ovr2 extends ovr1 {
int sun(int x, int y) {
return x - y + super.sun(x, y);
}
}Java에서의 메소드 오버라이딩(method overriding)과 상속(inheritance) 개념에 대해 묻는 기초적인 코드. 최종 출력 결과는 11.
이론 문제 포인트 ✍️
1. UNIX ✅
- 1960년대 AT&T 벨(Bell) 연구소, MIT, General Electric이 공동 개발한 운영체제
- 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제
- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음
- 트리(Tree) 구조의 파일 시스템
2. Android ✅
- Google에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
- 모든 코드가 공개된 개방형 소프트웨어
- 자바와 코틀린으로 애플리케이션을 작성
3. 프로세스 상태 전이 ✅

4. SJF ✅
- Shortest Job First, 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
5. HRN ✅
- Highest Response-ratio Next, 대기 시간과 서비스(실행) 시간을 이용하는 기법
- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위 부여
- ``우선순위 계산식`: `(대기 시간 + 서비스 시간) / 서비스 시간``
6. RR ✅
- Round Robin, 각 프로세스를 시간 할당량(Time Slice) 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주는 기법
- 시분할 시스템(Time Sharing System)을 위해 고안된 방식으로, 할당되는 시간의 크기가 작으면 작은 프로세스들에게 유리함
- 할당되는 시간이 클 경우 FCFS 기법과 같아지고, 할당되는 시간이 작을 경우 문맥 교환 및 오버헤드가 자주 발생되어 요청된 작업을 신속히 처리할 수 없음
7. SRT ✅
- Shortest Remaining Time, 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법
- 시분할 시스템에 유용하며, 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야 하므로 오버헤드가 증가함
8. UNIX / LINUX 기본 명령어 ✅
- ``cat``: 파일 내용을 화면에 표시함
- ``cd``: 디렉터리 위치를 변경함
- ``chown``: 파일 소유자와 그룹을 변경함
- ``cp``: 파일을 복사함
- ``rm``: 파일을 삭제함
- ``find``: 파일을 찾음
- ``kill``: PID를 이용하여 프로세스를 종료함
- ``fork``: 새로운 프로세스를 생성함
- ``ls``: 현재 디렉터리의 파일 목록을 표시함
- ``uname``: 시스템의 이름과 버전, 네트워크 호스트명 등의 시스템 정보를 표시함
- ``mv``: 파일을 이동함
- ``ps``: 현재 실행중인 프로세스를 표시함
- ``pwd``: 현재 작업중인 디렉터리 경로를 화면에 표시함
- ``who``: 현재 시스템에 접속해 있는 사용자를 표시함
9. chmod ✅
- 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정하는 UNIX 명령어
- 8진법 숫자를 이용한 방법으로도 파일의 보호 모드를 설정할 수 있음
10. IP 주소 ✅
- Internet Protocol Address, 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
- ``IPv4(Internet Protocol version 4)``
- 8비트씩 4부분, 총 32비트로 구성되어 있음
- 네트워크 부분의 길이에 따라 A 클래스에서 E 클래스까지 총 5단계로 구성되어 있음
- ``IPv6(Internet Protocol version 6)``
- IPv4의 주소 부족 문제를 해결하기 위해 개발됨
- 16비트씩 8부분, 총 128비트로 구성되어 있음
- 각 부분을 16진수로 표현하고, 콜론(:)으로 구분함
- 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있음
More to read
Amazon VPC Architecture 이해하기
새로운 프로젝트를 기획하며, 개발에서 무엇을 가장 먼저 고민해야 하는지 다시 돌아보게 되었습니다.한때는 프론트엔드가 모든 설계의 출발점이라고 믿었습니다. 유저가 무엇을 보고, 어떤 흐름에서 머무르고 이탈하는지에 대한 이해 없이 서비스를 만든다는 건 불가능하다고 생각했기
'원사이트'프론트엔드 관점으로 알고리즘 이해하기
오랜만에 방법론에 관한 글을 쓰게 되었습니다. 최근 상황은 이렇습니다. SSAFY에서는 하루에 엄청난 양의 알고리즘 문제들을 과제로 수행하게 됩니다. 그 과정에서, '구현력'이 매우 떨어진다는 생각이 들었습니다. 완전히 어려운 문제라면 '아쉬움'이라는 감정조차 느끼지
SubnetVPC 설계의 시작: IP와 Subnet
반복되는 루틴 속에서 얻은 안정감을 발판 삼아, 이제는 기술적 스펙트럼을 넓히기 위한 개인 프로젝트에 착수하고자 합니다.이번 프로젝트의 목표는 단순한 포트폴리오 구축을 넘어, 실제 서비스 수준의 블로그 시스템 구현과 다국어 처리 적용 등 실무에 가까운 역량을 한 단계