[TIL/정보처리기사 실기] 2024/06/12
✅ [23년 10월 1번, JAVA] > ✅ [23년 10월 2번, 용어] > ✅ [23년 10월 3번, C] > ✅ [23년 10월 4번, C] > ✅ [23년 10월 5번, 리눅스 or 유닉스에서 a.txt 파일] chmod는 리눅스 또는 유닉스에서 파일
✅ [23년 10월 1번, JAVA]
class SuperObject {
public void draw() {
System.out.println("A");
draw();
}
// 5. 반환값이 없는 paint() 메소드의 시작점이다.
public void paint(){
// 6. B를 출력한다.
System.out.println("B");
// 7. draw() 메소드를 호출한다. draw() 메소드는 2번 경우와 마찬가지로 자식 클래스에서 재정의되었으므로 SubObject 클래스의 draw() 메소드가 호출된다.
draw();
// 10. paint() 메소드가 종료되었으므로 메소드를 호출했던 4번 다음 줄로 이동한다.
}
}
class SubObject extends SuperObject {
// 3. 반환값이 없는 paint() 메소드의 시작점이다.
public void paint(){
// 4. 부모 클래스를 호출하는 예약어 super를 사용했으므로, 부모 클래스의 paint() 메소드를 호출한다.
super.paint();
// 11. 화면에 C를 출력한다.
System.out.println("C");
// 12. draw() 메소드를 호출한다.
draw();
// 15. paint() 메소드가 종료되었으므로, 메소드를 호출했던 2번 다음 줄로 이동한다.
}
// 8. 반환값이 없는 draw() 메소드의 시작점이다.
// 13. 반환값이 없는 draw() 메소드의 시작점이다.
// 17. 반환값이 없는 draw() 메소드의 시작점이다.
public void draw(){
// 9. 화면에 D를 출력한다. draw() 메소드가 종료되었으므로, 메소드를 호출했던 7번 다음 줄로 이동한다.
// 14. 화면에 D를 출력한다. draw() 메소드가 종료되었으므로, 메소드를 호출했던 12번 다음 줄로 이동한다.
// 18. 화면에 D를 출력한다. draw() 메소드가 종료되었으므로, 메소드를 호출했던 16번 다음 줄로 이동한다.
System.out.println("D");
}
}
public class Test {
// 0. 모든 Java 프로그램은 반드시 main 메소드에서 시작한다.
public static void main(String[] args){
// 1. SubObject 클래스의 생성자를 이용하여 SuperObject 클래스의 객체 변수 a를 생성한다.
SuperObject a = new SubObject();
// 2. a의 paint() 메소드를 호출한다.
a.paint();
// 16. draw() 메소드를 호출한다.
a.draw();
// 19. main() 메소드가 종료되었으므로, 프로그램이 종료된다.
}
}
// 결과 B,D,C,D,D지금 이해 안 됨
✅ [23년 10월 2번, 용어]
- 인터넷 애플리케이션에서 사용자 인증에 사용되는 표준 인증 방법으로, 공개 API로 구현되었다.
- 인터넷 사용자가 웹사이트나 애플리케이션에 비밀번호를 제공하지 않고 자신에게 접근 권한을 부여하여 사용할 수 있다.
- 2010년 ETF에서 1.0이 공식 표준안으로 발표되었다.
// OAuth✅ [23년 10월 3번, C]
#include <stdio.h>
main() {
// 1. 문자형 포인터 변수 p에 "KOREA"를 저장한다.
char*p = "KOREA";
// 2. 1.을 출력하고, p의 위치부터 널문자(\0) 전까지의 모든 문자를 출력한다.
printf("1. %s\n", p);
// 3. 2.을 출력하고, p+1의 위치부터 널문자(\0) 전까지의 모든 문자를 출력한다.
printf("2. %s\n", p+1);
// 4. 3.을 출력하고, p가 가리키는 곳의 문자 K를 출력한다.
printf("3. %c\n", *p);
// 5. 4.을 출력하고, p+3이 가리키는 곳의 문자 E를 출력한다.
printf("4. %c\n", *(p+3));
// 6. 5.을 출력하고, p가 가리키는 곳에 4를 더한 후(알파벳) 출력한다.
printf("5. %c\n", *p+4);
}
// 1. KOREA
// 2. OREA
// 3. K
// 4. E
// 5. O5번 추가설명: K L M N O
✅ [23년 10월 4번, C]
#include <stdio.h>
// 구조체 정의: insa
struct insa {
// 이름을 저장하는 문자열 배열
char name[10];
// 나이를 저장하는 정수
int age;
// 구조체 포인터, p1의 구현자 A
struct insa* impl_a;
// 구조체 포인터, p2의 구현자 B
struct insa* impl_b;
};
// main 함수
int main(){
// insa 구조체 변수들 선언 및 초기화
// p1 구조체 변수 초기화
struct insa p1 = {"Kim", 28, NULL, NULL };
// p2 구조체 변수 초기화
struct insa p2 = {"Lee", 36, NULL, NULL };
// p3 구조체 변수 초기화
struct insa p3 = {"Park", 41, NULL, NULL };
// 포인터 연결: p1의 구현자 A는 p2를 가리키게 함
p1.impl_a = &p2;
// 포인터 연결: p2의 구현자 B는 p3를 가리키게 함
p2.impl_b = &p3;
// p1의 구현자 A의 이름 출력
// "Lee" 출력
printf("%s\n", p1.impl_a->name);
// p2의 구현자 B의 나이 출력
// 41 출력
printf("%d\n", p2.impl_b->age);
// main 함수 종료
return 0;
}
// Lee
// 41추가 설명: printf("%s\n", p1.impl_a->name): p2의 이름 출력하세요 printf("%d\n", p2.impl_b->age): p3의 나이 출력하세요
✅ [23년 10월 5번, 리눅스 or 유닉스에서 a.txt 파일]
- 사용자에게 읽기, 쓰기, 실행 권한을 부여한다.
- 그룹에게 읽기, 실행 권한을 부여한다.
- 기타 사용자에게 실행 권한을 부여한다.
- 한 줄로 작성하고, 8진법 숫자를 이용한 명령문을 이용한다.
// chmod 751 a.txtchmod는 리눅스 또는 유닉스에서 파일 권한을 변경하는 명령어 4(읽기), 2(쓰기), 1(실행) 사용자(4+2+1=7), 그룹(4+1=5), 기타(1)
More to read
AI&ML 기초
Reference: https://bettermesol.github.io/ml/2019/09/16/ai-ml-dl/AI: 기계가 사람처럼 생각하고 판단하게 만드는 가장 넓은 범주의 기술입니다.ML: 데이터를 학습하여 스스로 규칙을 찾아내는 AI의 한 분야로,
'AI Agent Economy'Novitas : AI Agent가 지갑을 가지는 세상
얼마 전, 미래에셋증권 리서치 리포트(올해는 이더리움이다: 에이전트 시대의 Near Automata)를 접하게 되었습니다. AI Agent를 인간과 함께할 경제 주체로 바라보는 시각에 적잖이 충격을 받았더랬죠.한 가지 짚고 넘어갈 부분이 있습니다. 우리가 흔히 'AI'
'ERC-8004'Novitas: AI 에이전트 경제 주체
Web 4.0을 한 문장으로 정의하면 Sovereign Transact입니다.AI가 인간의 허락 없이 지갑을 소유하고, 결제를 수행하며, 인프라를 통제하는 주권적 경제 주체가 되는 세계입니다. Web 3.0이 블록체인 기반의 탈중앙화를 실현했다면, Web 4.0은 그