본문 바로가기
728x90

HOOAI709

[C++ Examples/Arduino] Digital Inputs and If Statements 예제코드 및 설명 Digital Inputs by Using Led and Buttons (If Statements) 예제코드 및 설명 포스트 난이도: HOO_Junior # Example Code int ledPin = 5; int buttonApin = 9; int buttonBpin = 8; //byte leds = 0; void setup() { // put your setup code here, to run once: pinMode(ledPin, OUTPUT); pinMode(buttonApin, INPUT_PULLUP); pinMode(buttonBpin, INPUT_PULLUP); } void loop() { // put your main code here, to run repeatedly: if (digit.. 2024. 1. 15.
[C++ Examples/Arduino] Blink 예제코드 및 설명 Blink 예제 코드 및 설명 포스트 난이도: HOO_Junior # Example Code 아래의 예제코드의 경우는 아두이노 (Arduino)에서 학습을 위한 목적으로 공개되어 있는 예제코드이다. [File]-[Examples]-[01.Basics]-[Blink]를 통해서 "Blink" 예제코드를 찾을 수 있다 (Figure 1). /* Blink Turns an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6... 2024. 1. 14.
[미국 박사] 메타 인턴십 (Meta Internship); 페이스북 (Facebook) 메타 인턴십 (Meta Internship); 페이스북 (Facebook) #  Internship 메타(Meta)는 Facebook으로 대중적으로 알려져 있는 플랫폼 전문 기업이다. 현재는 메타로 이름을 바꾸고 소셜 네트워킹 플랫폼 사업과 더불어 메타버스와 디지털 상품 및 디지털 플랫폼 사업 등도 같이 이루어지고 있다. 최근 메타 담당자로부터 박사 인턴십 제의를 받아서 우리 박사 브로들과도 해당 정보를 공유하고자 포스팅을 하게 되었다. https://www.metacareers.com/v2/jobs/2313453352176132/?location=Menlo%20Park%2C%20CA Software Engineer Intern, Systems and Infrastructure (PhD) Meta's .. 2024. 1. 11.
[Python Examples / Temp] 몬테카를로 카지노 주사위 몬테카를로 카지노 주사위 포스트 난이도: HOO_Middle # Example Code import random import matplotlib.pyplot as plt # Function to simulate die roll def rolldice(): dice = random.randint(1, 100) if dice 51: return True # Modified function for the play to return funds after each play def play_mod(total_funds, wager_amount, total_plays): Funds = [] for play in range(1, total_plays + 1): if rolldice(): total_funds += wa.. 2024. 1. 11.
[미국 개발자] 다이어그램 툴 (Diagram Tools) 추천: 루시드 차트(Lucid Chart) 다이어그램 툴 (Diagram Tools) 추천: 루시드 차트(Lucid Chart) # 개발자와 공학 박사생들에게 중요한 다이어그램 사실 해당 포스트는 2021년 5월에 프로그래밍 카테고리로 작성된 포스트를 업데이트한 것이다. 우리 개발자쟁이들은 다 알고 있지만 프로젝트에 들어가서 프로그램을 만들다 보면 여러 사람과 의사소통이 얼마나 중요한지 절실히 깨닫게 된다. 그래서 서로의 싸움을 방지하는 용도로 UML과 같이 다이어그램으로 프로그램이나 소프트웨어의 프로세스를 기획하고 서로 조율해 나가는 작업을 한다. 또한 해당 기획 작업이 순조롭고 꼼꼼히 이루어지면 사실상 실질적인 개발은 정말 빠르게 끝날 수 있기 때문에 글쓴이 생각에서는 프로젝트를 수행하거나 프로그램을 개발하는 데 있어서 정말 중요한 부분이라고.. 2024. 1. 9.
[Blockchain] 도커 초기화없이 네트워크 기능으로 초기화하기 도커 초기화 없이 네트워크 기능으로 초기화하기 포스트 난이도: HOO_Senior # network restart 도커(Docker) 컨테이너에 에러가 발생했을 때 도커 명령어를 통해서 초기화를 하고 재생성 및 설치를 진행해 준다. 아래 링크에 첨부된 포스트 링크에서 볼 수 있듯이 도커 컨테이너 문제하나로 다시 초기화 작업을 매번 시행하는데 귀찮다. https://whoishoo.tistory.com/702 [Error Code / Mac] docker ps를 했는데도 컨테이너가 나타나지 않을때, ERROR !!! FAILED to execute End-2-End Scena docker ps를 했는데도 컨테이너가 나타나지 않을 때, ERROR!!! FAILED to execute End-2-End Sce.. 2024. 1. 1.
[Error Code / Mac] docker ps를 했는데도 컨테이너가 나타나지 않을때, ERROR !!! FAILED to execute End-2-End Scenario docker ps를 했는데도 컨테이너가 나타나지 않을 때, ERROR!!! FAILED to execute End-2-End Scenario # docker ps, docker ps -a 맥(Mac)에서 도커(Docker)를 사용하는 데 있어서 현재 실행 중인 도커 컨테이너를 확인하기 위해서 "docker ps" 명령어를 사용한다. 이때 컨테이너를 생성하여 실행 중임에도 컨테이너가 아예 없거나 원하는 컨테이너 아이디가 나타나지 않는 경우가 종종 있다. 이런 경우 사용하려는 컨테이너가 특정 조건으로 종료되었을 가능성이 높다. 이런 경우 "docker ps -a"를 사용하여 현재 모든 도커의 상황을 먼저 확인해 주는 것이 좋다. $ sudo docker ps -a "docker ps -a"만을 작성하여도 .. 2023. 12. 31.
[Blockchain] 네트워크 스크립트 실행 설정, chmod +x 네트워크 스크립트 실행 설정, chmod +x 포스트 난이도: HOO_Senior # 블록체인 로컬 네트워크 스크립트 실행 스크립 내에 별도로 명령어에 대한 설정이 되어있지 않거나 스크립트 실행이 이루어지지 않는다면 스크립트 실행을 위한 설정 명령어를 입력해 주고 특정 스크립트에 대한 권한을 부여해줘야 한다. chmod +x 위의 "Chmod +X"를 통해서 리눅스나 유닉스 계열의 운영체제에서 디렉터리 및 파일 권한을 변경해 줄 수 있다. Chmod는 변경을 의미하고 +는 권한을 추가해 준다고 이해하면 된다. 따라서 "test-HOO.sh"라는 스크립트에 권한을 변경해주고 싶다면 아래와 같이 작성해 주면 된다. chmod +x test-HOO.sh # 사용자에 대한 권한 설정 추가적으로 아래와 같은 명령.. 2023. 12. 28.
[Blockchain] 도커 (Docker) 정리하기 도커 (Docker) 정리하기 포스트 난이도: HOO_Senior # Docker Containers and Volumes 도커 (Docker)를 사용하는 데 있어서 불필요한 컨테이너(Containers)나 볼륨(Volumes)을 정리해야 충돌 에러나 생각지 못한 경우의 에러가 발생하는 걸 방지할 수 있다. 도커를 사용하면서 localhost 에러나 컨테이너 및 볼륨 사용에 대한 에러가 발생한다면 아래와 같은 방법으로 도커를 정리해 주고 다시 시도해 보는 것도 간단한 방법 중 하나이다. 하지만 글쓴이 경험상 도커를 이미 익숙하게 사용하는 개발자라면 이러한 실수를 하지 않을 가능성이 높기 때문에 도커 정리를 해줘도 에러가 해결되지 않는 경우가 허다하다. 그럼에도 작은 희망을 가지 고라서도 도커 정리 하나로.. 2023. 12. 28.
[Blockchain] 블록체인 인보크 (Invoke Method) 블록체인 인보크 (Invoke Method) 포스트 난이도: HOO_Senior # Invoke Method 블록체인(Blockchain)에서 인보크(Invoke)는 체인코드 기능(Chaincode funciton)을 부르는 데 사용된다. 인보크는 유니티와 같은 다른 프로그래밍에서도 활용되는 메서드(Method)이지만 블록체인에서는 시간 지연 기능을 제공하기보다는 create, read, update and delete (CRUD)를 가지고 있으며(Encapsulated) 클라이언트(Client application) 트랜잭션(Transactions)이 발생할 때 인보크가 사용된다. 인보크 단어의 뜻을 찾아보면 "작동하다" 또는 "호출"의 의미를 가지고 있는데 블록체인의 인보크는 체인코드를 작동하기 위한.. 2023. 12. 26.
[미국 박사] Academic CV와 CV의 차이점 Academic CV와 CV의 차이점 # 한 페이지로 끝나는 미국의 이력서, CV 미국에서 Curriculum Vitae (CV)는 이력서를 의미한다. 본인의 이력을 어필하는 데 사용한다는 점은 한국과 동일하지만 글쓴이가 느끼는 가장 큰 차이점은 한국의 이력서보다도 더 간결하면서도 한 페이지에 꼭 압축해줘야 하는 것이 미국의 이력서이다. 물론 상황에 따라서 페이지 수가 길어질 수도 있지만 내용일 길어진 이력서는 버려지거나 면접관들이 제대로 읽어보지 않을 가능성이 있다. 사실상 한 페이지 작성하는 것이 바로 CV라고 암묵적 약속이 되어 있는 상황에서 본인만 할 말이 많다고 초과하여 작성하면 해당 이력서는 이미 기본이 되어있지 않고 본인 능력을 한 페이지에 요약해서 나타내는 능력조차도 없다고 판단하여 부정적.. 2023. 12. 12.
[Error Code] npm install 에러, npm gyp npm install 에러, npm gyp # npm install errors Node Packaged Manager (npm)은 Node.js 기반으로 만들어진 모듈을 사용하려고 할 때 필요한 툴이다. 글쓴이처럼 데이터 관리나 블록체인 개발이 아니더라도 Javascript (자바스크립트)를 사용한다면 npm을 기본적으로 많이 사용할 것이다. 문제는 npm install 단계에서 "npm ERR!'과 같이 에러 코드가 발생하면서 제대로 설치가 완료되지 않는 경우가 발생할 수 있다. 특히 리눅스나 맥에서 발생할 수 있는 에러인데 이러한 경우 아래의 방법을 통해서 문제를 해결해 보는 것이 좋다. 우선 이러한 경우 기존에 설치되어 있는 npm에서 문제가 발생해서 충돌이 생겨났을 가능성이 있기 때문에 가장 .. 2023. 12. 10.
[Error Code] Operation not permitted error Operation not permitted error # 맥북 터미널 에러 "Operation not permitted error"는 맥에서 발생하는 에러이다. 특히 코딩을 하는 과정에서 파일에 대한 접근 권한이 주어지지 않았을 때 이러한 에러코드와 함께 파일 접근이 차단된다. 터미널이 관리자로써 권한을 가지고는 있지만 다른 파일에 대해서 접근 권한이 주어지지 않을 경우 이와 같은 permission error가 발생한다. 따라서 파일에 대한 접근 권한을 주기 위해서 "Privacy & Security"에 있는 "Full Disk Access"의 설정을 변경해줘야 한다. (참고로 글쓴이는 영어 기반이다 보니, 언어가 한국어로 되어있는 경우 메뉴에 대한 이름이 다를 수 있다.) 위의 그림에 나와있듯이 ".. 2023. 12. 8.
[카카오 같이가치] 자립준비청년들을 위한 노트북 지원 자립준비청년들을 위한 노트북 지원 # 개발자 브로들을 위한 카카오 같이가치 안녕하세요 HOOAI 블로그를 운영하고 있는 HOO입니다. 제가 이 블로그를 운영하면서 개발자를 꿈꾸는 청소년 및 청년들을 돕기 위해서 "카카오 같이가치"를 통해 미래의 개발자 브로들에게 작은 도움을 주고 있습니다. 마음 같아서는 블로그의 광고 배너 수입으로 큰 금액의 기부가 이루어지면 좋겠지만 아직까지는 수입이 거의 없기 때문에 제 사비로 적은 돈이나마 청소년과 청년들을 위해 도움을 주고 있습니다. 이번에 카카오 같이가치를 하게 된 이유는 자립준비청년들의 노트북 지원 사업이 있다는 이야기를 들었기 때문입니다. 이번 지원 사업을 통해서 자립준비청년들 중에서 개발자를 꿈꾸는 브로들이 생겨났으면 좋겠습니다. 국내 시장에서 개발자 수요.. 2023. 12. 7.
[Error Code] Is the docker daemon running? Is the docker daemon running? # Docker Daemon 도커 데몬 (Docker Daemon)은 컨테이너와 가상 머신을 사용할 수 있는 엔진이며 도커 데몬은 백그라운드 프로세스에 해당한다. 현재 도커는 맥이나 리눅스 OS 뿐만 아니라 윈도우를 포함하여 클라우드에서도 사용하고 있기 때문에 많은 개발자들이 도커 데몬을 사용하고 있을 것이라고 본다. 따라서 블록체인 분야가 아니더라도 데이터를 다룬다면 도커를 비롯하여 도커에서 제공하는 여러 기능들을 활용할 일이 많다. 문제는 도커를 제대로 설치가 되어있음에도 "Is the docker daemon running?"라고 짜증나는 질문 형식으로 에러코드가 발생하면 컴퓨터를 주먹으로 치고 싶은 분노가 나타날 수 있다. 글쓴이도 거의 10년.. 2023. 12. 7.
[Error Code] The operation couldn’t be completed. Unable to locate a Java Runtime. Please visit http://www.java.com for information on installing Java. The operation couldn’t be completed. Unable to locate a Java Runtime. Please visit http://www.java.com for information on installing Java. # Java installation error 자바가 라이선스에 대한 기준과 규정들이 복잡해지면서 공부하는 학생들만 더 힘들어진 것 같아 안타깝다. Machine learning만 할 때는 자바를 안 쓰고도 충분히 할 수 있기 때문에 자바에서 벗어나 행복했지만 블록체인을 하면서부터 Java가 필요한 순간들이 있다 보니 OpenJDK를 사용하고 있다. 맥북 중에서도 M1이나 M2 칩을 사용하는 최신 맥북에서 OpenJDK 또는 자바를 설치하려고 할때 아래와 같은.. 2023. 12. 6.
[Error Code] Docker Errors: Incompatible CPU detected Docker Errors: Incompatible CPU detected # Incompatible CPU detected 이 놈의 맥은 친해질 뻔하면 한 번씩 튕겨주는 자식이다. 맥을 쓰는 개발자 브로들 중에서도 새로 나온 애플 M칩이 내장되어 있는 맥북의 경우 Docker를 사용하려고 할 때 아래와 같은 에러 메시지가 뜰 수 있다. 해당 도커를 리셋하더라도 문제가 지속적으로 발생한다면 도커를 새로 설치해줘야 한다. 기존 도커 버전과 새로 나온 M칩 버전들이 충돌이 발생해서 이러한 오류가 나타나기 때문에 새로운 도커를 공식 사이트에서 다운로드해 주고 재설치를 해주면 문제를 손쉽게 해결할 수 있다. 여기서 유의할 점이 Docker errors에 대한 문제점들을 인터넷에서 찾다보면 BIOS 문제라면서 세팅.. 2023. 12. 4.
[C Examples] 버블 정렬 (Bubble sort)을 활용해서 티켓 추첨하기 버블 정렬 (Bubble sort)을 활용해서 티켓 추첨하기 포스트 난이도: HOO_Junior # Example Code 이번 포스트에서는 버블 정렬 (Bubble sort)를 다루는 예제코드를 살펴볼 수 있다. 기본적으로 알고 있어야 하고 처음으로 가장 많이 접하는 버블 정렬의 경우 그만큼 사용할 수 있는 방법과 기회가 많다. 따라서 버블 정렬을 어떻게 구현해서 C에서 어떻게 사용하는지를 해당 코드를 통해서 살펴볼 수 있다. 코드에서 산출하고자 하는 내용은 단순하고 많이 봐온 티켓 추첨에 대한 내용이다. 따라서 버블 정렬이 어떻게 코드 내에서 활용되고 있는지를 쉽게 확인할 수 있다. 이러한 주요 functions들의 경우, 다른 프로그래밍 언어에서도 작성 방식만 다르지 동일하게 사용이 되기 때문에 다.. 2023. 12. 4.
[카카오 같이가치] 교사가 꿈인 고등학교 3학년 수아야 힘내! # 카카오같이가치 안녕하세요 HOOAI 블로그를 운영하고 있는 HOO입니다. 바쁜 일정 속에 2023년이 정말 빠르게 지나가 버렸네요. 아무쪼록 우리 개발자 브로들도 다들 좋은 2023년을 보내셨기를 바랍니다. 블로그를 운영하면서 발생하는 광고 수익금을 토대로 카카오같이가치를 통해 우리나라 청소년들을 돕고자 시작했던 저의 작은 프로젝트가 이루어지는게 쉽지 않습니다. 사비를 털어 기부를 정기적으로 하려고 하다보니 금액이 매번 크지 않아 청소년들에게 미안할 따름입니다. 그래도 십시일반 도움이 되어 학생, 청소년들에게 도움이 되기를 기원합니다. 이번에 카카오같이가치를 하게된 이유는 교사의 꿈을 가지고 있는 고등학교 3학년 수아에게 힘이 되기를 바라는 마음이었습니다. 고등학교 3학년이라는 시기에 공부하고 투정부.. 2023. 12. 4.
[Blockchain] 블록체인(Blockchain)에서 해시(Hash)란? 블록체인(Blockchain)에서 해시(Hash)란? 포스트 난이도: HOO_Junior # Hash 우리가 해시 (Hash)에 대해서 알아보기 위해 검색을 해보면 "해시 함수는 임의 길이의 입력값을 받아 고정된 길이의 출력값을 생성하는 함수"라는 문장으로 시작되며 해시를 소개하는 많은 글들을 살펴볼 수 있다. 해시에 대해서 다뤄본 적이 있거나 이미 알고 있다면 해당 문장이 무슨 의미를 나타내는지 한 번에 이해할 수 있지만 처음 해시에 대해서 알아보고자 하는 브로들에게는 여기서 블록체인에 대한 흥미를 떨어지게 만들 수 있다. 한마디로 압축적으로 한 문장 안에서 해시에 대한 설명을 하려고 하니 무슨 말인지 이해가 잘 되지 않는다. (사실 글쓴이가 논문을 쓸 때마다 실수하는 부분 중 하나다.) 해시에 대해서.. 2023. 12. 3.
[C Examples] Struct과 포인터를 활용해서 입력한 점수 저장하고 출력하기: struct, pointer Struct과 포인터를 활용해서 입력한 점수 저장하고 출력하기 포스트 난이도: HOO_Intern # Example Code 이번 예제코드에서는 Struct과 Pointer를 활용해서 사용자가 입력한 점수를 저장하고 다시 출력하면서 평균값을 산출해 낼 수 있다. 코드의 내용 자체는 매우 간단하기에 이번 예제코드에서 중점적으로 봐야 하는 부분은 Struct과 포인터가 어떻게 사용되는지이다. 코드 자체에서 하고자 하는 프로세스 자체가 간단하기 때문에 각 함수의 역할들을 이해하기 수월하다. #include #include struct node { float value; struct node* next; }; struct node* head = NULL; void displayList() { struct nod.. 2023. 12. 1.
[C Example Code] queue를 활용한 환자의 우선 순위 나타내기: malloc(), queue, struct, point, void() queue를 활용한 환자의 우선순위 나타내기: malloc(), queue, struct, point, void() 포스트 난이도: HOO_Junior # Queue, Enqueue, Dequeue 이번 예제코드에서는 Queue (큐)를 활용한 우선순위를 나타내고 변경하는 결과를 살펴볼 수 있다. 예제코드 포스트이다 보니 큐에 대해서 이미 알고 있겠지만 간단히 Wrap-up 하자면 큐는 First in first out, 즉 FIFO 원칙을 따르는 데이터 구조이다. 따라서 큐에 추가 된 첫 번째 요소가 가장 먼저 제거되는 것을 의미한다. 해당 예제코드를 살펴보면 큐에 입력된 값을 변경하여 우선순위를 변경해 줄 수 있는데 이 부분이 기존의 값이 삭제되고 새로운 값이 추가된다고 볼 수 있다. 큐에는 Enq.. 2023. 11. 29.
[C Examples] 출력되는 문장 거꾸로 뒤집기: void printReverse(), sizeof(), if() 출력되는 문장 거꾸로 뒤집기: void printReverse(), sizeof(), if() 포스트 난이도: HOO_Intern # Example Code 이번 예제코드에서는 void function을 사용해서 printReverse라는 recursive function을 만들어준 뒤에 출력되는 문장을 거꾸로 뒤집어줄 수 있다. Recursive는 프로그래밍에서 많이 사용하는 간단한 기능이기 때문에 어떻게 구현하는지를 정확히 이해하고 가는 것이 중요하다. 처음에는 다소 어려워 보이지만 "반복"에 초점을 두고 코드를 살펴보면 이해하는데 어렵지 않을 것이다. 아래의 예제코드에서는 void function 안의 printReverse() function이 어떻게 작성되어 적용되는지를 보는 것이 가장 중요하다.. 2023. 11. 28.
[Blockchain] 블록체인 DID (Blockchain Decentralized Identifiers) 블록체인 DID (Blockchain Decentralized Identifiers) 포스트 난이도: HOO_Middle # Decentralized Identifiers 블록체인의 여러 기능 중에 참여자가 많은 시스템 또는 플랫폼에서 데이터에 대한 위변조를 방지하고 데이터의 소유권을 명확하게 하기 위해서 사용되는 기능이 바로 Decntralized Identifiers (DID)이다. DID는 한국말로 탈중앙화 신원증명이라고 직번역되어 부르다 보니 용어만 보고 이해하는데 다소 어려움을 느낄 수 있다. 예를 들어 탈중앙화 신원증명이라고 한다면 마치 각 참여자에 대한 신원의 위변조를 막고자 DID를 사용한다고 볼 수 있는데, 이는 DID에 대한 기능을 모두 나타내지는 않는다. DID를 통해서 각 사용자의 .. 2023. 11. 26.
[Computer Vision Examples] Convert PyTorch: pt to onnx Convert PyTorch: pt to onnx 포스트 난이도: HOO_Senior # pt to onnx 아래는 onnx로 전환하는 예제코드이다. Colab이나 Notebook에서 작업할 수 있고 vscode에서도 notebook이 있으면 가능하다. 사용 조건에 맞춰서 조정해서 사용하면 된다. !pip install ultralytics onnx onnx-simplifier onnxruntime from ultralytics import YOLO model = YOLO("model_name.pt") model.export(format="onnx",imgsz=[640,640], opset=12) # export the model to ONNX format 2023. 11. 15.
[Computer Vision] YOLO랑 Fast R-CNN을 합쳐보았습니다. YOLO랑 Fast R-CNN을 합쳐보았습니다. 포스트 난이도: HOO_Senior # YOLO, 2015 Computer vision을 다루는 브로들이라면 2015년에 처음 나온 YOLO (욜로) 페이퍼를 최소 한번 정도는 읽어봤을 것이다. 물론 현재 버전의 욜로와 차이가 많이 있지만 욜로의 근본적인 구조는 동일한 방식으로 Detecting이 되기 때문에 꼭 한번 정도는 읽어보는 것을 추천한다. 글쓴이의 주관적인 견해뿐만 아니라 객관적으로도 4만 번 이상 cited가 된 페이퍼이기 때문에 충분히 입증되었다. Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." Proceedings of the IEEE conf.. 2023. 11. 15.
[Error Code] RuntimeError: Dataset 'data.yaml' error RuntimeError: Dataset 'data.yaml' error # RuntimeError, 데이터셋 경로를 찾지 못할 때 모델링에 학습할 데이터셋을 만들고 해당 데이터셋에 대한 경로를 입력해서 학습을 시키려고 하는데 에러가 발생하는 경우가 있다. yaml 파일 안에 각 학습할 데이터셋의 경로를 제대로 지정해 두었는데도 불구하고 지속적으로 RuntimeError가 뜨면서 경로를 찾을 수 없다고 나온다면 미치고 팔짝 뛸 노릇이다. 글쓴이가 개인적으로 싫어하는 에러코드가 바로 간단하면서 분명히 문제가 없는데 문제가 있다고 할 때이다. 어렵거나 코드 안에 에러가 있으면 찾아서 고쳐나가면 되지만 이렇게 경로가 문제가 없는데 갑자기 안된다고 하면 스트레스를 받는다. 따라서 이번 에러코드 포스트에서는 데이터.. 2023. 11. 14.
[Python] Random Seed(랜덤 시드) Random Seed(랜덤 시드) 포스트 난이도: HOO_Middle # Random seed Random seeds(랜덤시드)는 한국에서 난수 생성기라고도 부르며, 랜덤 한 값을 생성해 낸다. 랜덤 한 값을 생성해 낸다고 해서 마치 무작위 시드 값을 생성하는 것 같지만 반은 맞고 반은 틀린 말이다. 임의의 값을 랜덤 하게 생성해 낸다는 점에서는 맞지만 한번 정해진 시드 값은 다음 랜덤시드에서도 동일하게 산출된다. 따라서 랜덤 시드란 랜덤하게 컴퓨터가 시드 값을 정하는 걸 의미하며 랜덤 하게 시드 값이 계속 바뀌는 걸 의미하지는 않는다. 또한 랜덤 시드값은 사실 무작위로 정해지는 것도 아니다. 인간은 뇌에서 무작위 숫자를 선택해서 결정할 수 있지만 컴퓨터는 자율적으로 생각해서 랜덤 한 숫자를 선택하지 못.. 2023. 11. 10.
[Computer Vision] Object Detection Systems: YOLO (욜로) Object Detection Systems: YOLO (욜로) 포스트 난이도: HOO_Senior # Introduction 이번 포스트는 YOLO(욜로)에 대한 전반적인 내용을 담고 있다. 특히 욜로의 첫 번째 버전이 나오던 시점의 2015년을 기준으로 욜로가 왜 나오게 되었는지, 욜로와 다른 Object detection systems들의 차이가 무엇인지에 대해서 살펴보았다. YOLO와 Object detection systmes에 대한 배경 지식이 있으면서 구체적으로 어떤 차이와 욜로만이 가진 특징이 무엇이었는지를 살펴보고 싶다면 해당 포스트를 참고하는 게 도움이 되는 부분들이 있을 수도 있으니, 가볍게 읽어보기에 좋다고 본다. (여담으로 포스트 작성과 더불어 연구 발표를 하면서 글쓴이의 성과와 .. 2023. 11. 10.
[C Examples] Stack을 활용해서 Stack 값 바꿔보기, Dynamic stack Stack을 활용해서 Stack 값 바꿔보기, Dynamic stack 포스트 난이도: HOO_Junior # Example Code 1 이번 포스트에서는 C언어의 Stack (스택) 값을 바꿔보는 예제코드를 통해 스택에 대해서 보다 더 익숙해질 수 있다. 특히 이번 예제코드에서는 동적 배열 또는 동적 스택이라고 불리는 Dynamic stack에 대해서 살펴볼 수 있다. 아래의 예제코드 1을 보면 Lottery 숫자가 스택으로 주어져있는 상황에서 사용자가 임의의 7자리 숫자를 입력하고 난 뒤에 중간 스택에 새로운 값이 추가되는 걸 확인할 수 있다. 이때 예제코드 1에서는 중간 배열의 스택이 지속적으로 추가가 되어 처음 스택보다 스택의 값이 증가하는 걸 알 수 있다. 반면에 예제코드 2에서는 중간에 새롭게.. 2023. 11. 9.
728x90