Etc/odds and ends
Docker login error : Error saving credentials: error storing credentials 해결방법 (Mac)
도커로 NVIDIA NGC에 접속하려고 하는데 계속 아래와 같은 에러가 발생하였습니다. Error saving credentials: error storing credentials - err: exit status 1, out: 'Post "http://ipc/registry/credstore-updated": dial unix /Users/myrepo/Library/Containers/com.docker.docker/Data/backend.sock: connect: connection refused' 이 경우에는 ~/docker/config.json 경로의 파일에서 아래 코드를 삭제해주면 됩니다. (vi editor로 접속) "credStore": "desktop" 위를 찾아 삭제해주면 정상적으로 로그..
코테 준비를 위한 코테북 제작기 ( Feat. Vuepress)
코테랑 Vuepress랑 무슨 연관관계가있어? 코테랑 Vuepress는 아무 연관관계도 없다. 코테를 준비하며 푼 문제들과 풀이를 공유하고 유형별로 정리하여 다른 사람들이 준비할 때 도움이 되었으면 하는 바램으로 코테북을 제작을 하게 되었다. 블로그 레포와 Vupress로 제작된 블로그에 한번 구경오셔서 저의 코드도 지적해주시고 코테를 준비하면서 좋다고 생각되는 문제들도 공유해주시면 감사하겠습니다!🙇🏻♂️ Vuepress와의 만남 Vuepress의 첫 만남은 TIL을 제작하기 위해 준비를 할 때였다. 블로그 형식으로 TIL을 제작하고 싶어 찾아보다가 진유림님의 TIL을 만나게 되었다. 이거다! 생각된 나는 무지성 fork를 하였다. 나의 TIL 제작을 위해 코드를 하나하나 까보며 적용을 하기 위해 시..
OSI 7계층을 알아보자.
OSI 7계층 OSI 7계층은 네트워크에서 정보를 주고받는 과정을 7단계로 나누어둔 것을 의미합니다. 물리계층(Physical Layer), 데이터 링크 계층(DataLink Layer), 네트워크 계층(Network Layer), 전송계층(Transport Layer), 세션계층(Session Layer), 표현 계층(Presentation Layer) 응용 계층(Application Layer)으로 이루어져 있습니다. 계층을 나누어 둠으로 써 통신이 일어나는 과정을 더 잘 알수 있으며 통신중에 문제가 생기면 어느 계층에서 문제가 생겼는지 확인하여 특정 계층의 장비만 교체한다던지의 과정으로 유지보수 소요를 줄일 수 있습니다. OSI 7계층과 TCP/IP는 동일한 역할을 수행하지만 TCP/IP는 4계층으..
DNS(Domain Name Service)란 무엇인가?
도입 웹 브라우저로 통신을 할 때 인터넷프로토콜(Internet Protocol)을 사용한다. 웹서버로 Request를 하면 그에 대한 Response가 넘어오며 웹 브라우저를 구성하게 된다. 이때 우리는 통신을 위해 웹서버의 IP를 필요하게된다. 하지만 우리가 웹서버에 요청을 할때는 도메인만 입력을 하게 된다. 호스트를 IP로 변경해주는 역할을 수행해주는 역할을 수행하는 DNS에 대하여 알아보도록 하자. DNS란? DNS는 웹서버에 대한 전화번호부라고 비유되며 도메인에 대한 IP와 라우팅 정보를 제공해주는 DB이다. URL의 host부분을 보고 매칭되는 IP정보를 주게 된다. 클라이언트(사용자)는 IP를 몰라도 도메인 명만 알고 있으면 편리하게 웹서버에 요청하여 웹페이지를 구성할 수 있게 된다. 과거의..
URI? URL? URN?
도입 URI, URL, URN에 대하여 알아보자. URI(Uniform Resource Identifier) 리소스를 식별할 때 다른 항목과 구분하는데 필요한 정보로 리소스가 있는 위치(Location) 혹은 이름(Name)이 있을 수 있다. URL(Uniform Resource Locator) 리소스를 식별하는데 위치(Location)으로 필요한 정보를 구분하는 방법이다. URL을 만드는 방법은 아래와 같다. scheme - scheme은 프로토콜로 자원을 접근하는 방법을 의미한다. - http, https, mailto, ftp 등등이 있다. - http://username:password@www.google.com:80/search?q=hello#20 userinfo - 사용자의 인증정보를 포함해서..
www.google.com url을 검색하면 일어나는 일
도입 이번에는 www.google.com을 검색하면 어떻게 우리에게 구글 웹 브라우저를 보여주게 되는지 알아보도록 하겠다. 웹 페이지를 가져오는 과정 URL 주소를 검색한다. www.google.com을 입력한다. 호스트명을 DNS 서버에서 검색한다. DNS 서버에서 해당 호스트명에 대한 IP 주소를 찾아 전달한다. HTTP Request를 생성하고 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소로로(웹 서버) 전송한다. 전송받은 HTTP Request 메시지를 받는다. 사용자로부터 받은 HTTP Request 메시지를 웹서버가 처리하며 필요한 데이터가 없는지 확인한다 HTTP Request에서 요구한 데이터를 전달한다. 해당 데이터를 활용해 HTTP Response를 생성하고 사용자 IP로 응..
Tistory 블로그 글 쓰면 자동으로 GitHub에 올리기
동기 만들게된 계기.. 오늘 Git을 열심히 꾸며주었다. 😊 꾸미면서 엄청난 사람들의 Git을 많이 구경하였는데 TIL이 눈에 들어왔다. 나도 TIL쓰고 싶다는 생각에 바로 Repository부터 만들었다. Tistory에 공부한 자료도 올리고 TIL로 깃헙에 까지 매일 작성하면, 너무 귀찮다고 생각하여 생산성있게 Tistory로 올리면 자동으로 깃헙으로 넘어가는 프로그램을 만들어보자고 생각했다. 구현 방법 사용한 방법은 rss와 git Actions를 사용하는 것이다. rss란? 쉽게 말하면 최근의 작성된 기사 혹은 블로그 글을 하나의 파일로 모아둔 것이다. rss는 비교적 옛날 글과 같은 것들은 따로 모아두지 않는다. git Actions를 사용하면 git에서의 간단한 동작을 처리할 수 있다. Pyt..
마크다운(Markdown) 문법 정리
마크다운 문법 정리 마크다운 문법은 너무 쉽고 간단하지만, 매번 사용할때마다 새로운? 느낌을 받았습니다. 먼가 사용을 할때마다 내가 이 문법을 맞게 사용했나 싶기도하고, 항상 찾아보는데 불편함이 있더라구요. 그래서 이번 포스팅에서는 내가 주로 사용하는 MarkDown 문법을 작성해 저장하려고합니다. 줄을 넘기는 방법(개행) 줄을 넘기는 방법은 스페이스로 뒤에 2번이상으로 엔터를 쳐주면됩니다. 첫번째 줄 두번째 줄(스페이스 바 안침) 세번째 줄 첫번째 줄 두번째 줄(스페이스 바 안침) 세번째 줄 이렇게 수행이 됩니다. heading tag(제목) 주로 제목에 자주 사용하는 태그를 소개합니다. HTML의 heading tag는 MarkDown에서는 '#'을 활용하여 표현합니다. # this is H1 ## ..
Git Blog에 이미지 업로드 Tip
MarkDown의 불편한점! 이미지 삽입 저는 깃헙을 사용하며 README.md파일을 통해 처음 MarkDown을 접했습니다. 마크다운은 여러가지 방면에서 굉장히 편리하였고 좋았지만, 가장 불편한 것은 이미지를 삽입하는 것이라고 생각해.. 이번 포스팅에서 소개해드릴 방법을 모르고 있었을 때 항상 git 저장소에 img파일을 함께 넣어 md를 작성하였는데, 굳이 이렇게 하지 않아도 되는 방법이 있더라구요! 지금부터는 그 방법을 공유하도록 할게요! MarkDown에 이미지 간편 삽입 방법 Git Hub의 저장소에 들어가 'Issues' 탭을 클릭한다. 빨간 박스로 표시되어 있는 부분인 'New issue'를 클릭한다. 빨간색 화살표로 표시한 부분으로 원하는 이미지를 drag한다. 잠시 기다리면, 아래와 같이..
uArm 예제를 응용해 바둑돌 두는 동작 구현
안녕하세요. 충남대학교 컴퓨터공학과 김진섭입니다. 저는 지금 인스페이스에서 백마인턴쉽(4주)를 수행하고있는데, 벌써 3주의 끝에 오게되었네요. 아마, 이번 포스팅이 인스페이스 인턴 생활의 마지막? 포스팅이 될 것 같습니다. 이번시간에는 지난번에 사용하였던 OpenMV의 코드를 응용하여 바둑판에서 바둑돌의 위치를 주면 해당 위치에 바둑돌을 두는 코드를 소개하겠습니다. 우선 이전에 포스팅해둔 OpenMV를 기본적으로 모두 수행해보셨다는 가정하에 진행할 계획이니까, 한번 따라서 수행해 보시고 이번 포스팅을 읽어주시면 감사하겠습니다. 저는 메가보드의 아두이노 코드를 변경하여 바둑돌을 처리할 수 있도록 구현하였습니다. 따라서 코드설명은 OpenMV와 uArm의 부분을 제외한 아두이노 부분만 설명 드리도록하겠습니다..
OpenMV가 바둑돌을 찾아내도록 코드를 구현해봅시다.
안녕하세요! 충남대학교 컴퓨터공학과 김진섭 학생입니다. 지난 포스팅에서는 OpenMV의 예제를 적용해보고, uArm을 이용하여 빨간색 물체를 찾고 옮기는 작업을 수행하였는데요. 이번 포스팅에서는 지난번에 사용한 OpenMV 예제를 바탕으로 바둑돌을 찾는 코드를 작성해 보도록 하겠습니다. 만약 OpenMV에 대하여 궁금하신 점이 있으시면 OpenMV 홈페이지에서 확인해 주시길 바랍니다! 코드 구현 설명 OpenMV에서 제가 바둑돌을 찾기 위한 코드를 설명하기에 앞서, 이 전 포스팅에서 사용한 예제 코드를 모방하여 구현하였음을 미리 알려드립니다. import sensor, image, time, pyb 우선, OpenMV의 LED나 uArt 통신을 하기 위해서는 pyb라고 하는 모듈을 import해 주어야합..
uArmSwiftPro Open MV사용해보기
안녕하세요 충남대학교 컴퓨터공학과 김진섭입니다. 이번 시간에는 uArmSwiftPro에 OpenMV를 붙여 사용하여보도록 하겠습니다. 빨간색 정 사각형 물체를 인지하고, uArm이 해당 물체를 들어올려, 정해진 위치에 옮기는 오픈소스가 있는데요, 해당 오픈소스를 적용하는 과정에 대하여 포스팅 하도록 하겠습니다. (오픈소스는 uFactory에서 제공하여주었습니다.) uArm에 OpenMV를 붙이고, 오픈소스를 넣어주는 과정을 수행하기 위한 준비물, 소프트웨어 설치 과정, 하드웨어 선 연결 과정으로 설명드리도록 하겠습니다. 준비물 이번 OpenMV를 수행하기 위하여 준비해야할 물품에 대하여 설명드리도록 하겠습니다. uArm을 미 포함하여, 총 8개의 물품이 준비되어 있어야합니다. 1. C타입의 케이블 2개 ..
Python으로 uArm 제어하기
안녕하세요. 충남대학교 컴퓨터공학과에 재학중인 김진섭입니다. 이번 포스팅에서는 uArm swift pro를 파이썬을 활용하여 제어하는 예제를 수행해 보도록 하려 합니다. 우선, 파이썬을 통해 제어에 대해 알아보기에 앞서, Gcode를 반드시 숙지해 주셔야한다는 점을 다시한번 강조드리는 차원에서 uArm Swift pro의 Gcode 예제를 살펴보며 시작할까 합니다. uArm Swift Pro Gcode 예제 M2400 S0 G1 X200 Y0 Z130 F1000 G1 X200 Y0 Z30 F1000 M2231 V1 X200 Y0 Z130 F100 X150 Y-150 Z130 F1000 X150 Y-150 Z30 F1000 M2231 V0 X150 Y-150 Z130 F1000 X150 Y-150 Z30 ..
uArm을 아두이노 제어
안녕하세요. 충남대학교 컴퓨터공학과에 재학중인 김진섭입니다. uArm swift pro의 내부에는 Arduino가 탑재되어있습니다. 이번 포스팅에서는 아두이노 스케치라는 아두이노 IDE를 활용하여 uArm을 제어하여 보도록 하겠습니다. 우선 https://github.com/uArm-Developer/SwiftProForArduino에 들어가서, 코드를 다운로드 받습니다. 해당 홈페이지에 들어가서, clone or download를 누른 뒤 DownloadZIP을 눌러 Frimware를 다운로드 받습니다. 그 뒤 ZIP 파일을 풀어줍니다. *해당 과정은 uArm Swift Pro에 대한 처리입니다! Firmware는 비유하면 uArm의 머리와 같은 것 입니다. FirmWare를 uArm에 적용시켜주어야 ..
uArm 소개 & uArm Studio 사용법
안녕하세요. 충남대학교 컴퓨터공학과에 재학중인 김진섭입니다. 약 한달간 백마인턴쉽이라는 좋은 제도로 '(주) 인스페이스'라는 기업에서 인턴 생활을 하게 되었습니다. 이번 인턴생활을 하며 수행할 프로젝트는 uArm을 이용하여 오목을 두는 로봇을 개발하는 것 입니다. 오늘 처음 uArm을 사용해봐서 어떻게 써야할지 잘 모르기 때문에 사용법을 익히기 위해 uArm과 관련 YouTube 영상, 메뉴얼을 확인하여 얻어낸 지식을 공유하고자 글을 씁니다. 글의 목차를 설명 드리면 1. 제품에 대한 소개 2. uArm 개발환경 설치 3. uArm Studio를 활용하여 개발하기 순서로 진행하도록 하겠습니다. 1. 제품에 대한 소개 uArm은 UArm Swift와 uArm Swift Pro가 있습니다. 인스페이스에서 제..