Knowledge

· Knowledge
Release란? 소프트웨어를 빌드한 결과물을 쉽게 배포할 수 있도록 도와주는 기능이다. 구체적으로, 프로젝트의 버전을 마킹하고, 버전별 변경 사항, 릴리스 노트, 그리고 해당 소스 코드 및 바이너리 파일을 제공하는 데 사용할 수 있다. 언제 사용? 새로운 기능을 추가하거나 기존 기능을 업데이트한 후, 해당 변경 사항을 반영한 소프트웨어의 배포 버전 관리 시 사용. 배포 전략으로 활용할 수 있으며, 프로젝트를 특정 시점으로 롤백할 때 유용하게 사용할 수 있다. Tag Tag는 Commit에 붙일 수 있는 꼬리표로, Commit에 Release 버전을 명시할 수 있다. 예시 상황으로, 기존의 어떤 기능을 업데이트하고 push했는데 해당 기능에 버그가 있어 원래대로 되돌려야 할 때 업데이트 전 커밋의 태그를..
· Knowledge
HTTP 상태코드 : 클라이언트가 서버로 보낸 요청의 처리 상태를 응답에서 알려주는 기능. 1xx (Informational) 요청이 수신되어 처리중 2xx (Successful) 요청 정상 처리 3xx (Redirection) 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) 클라이언트의 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음. 5xx (Server Error) 서버의 오류, 서버가 정상 요청을 처리하지 못함. 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하는 경우 - 클라이언트는 상위 상태코드로 해석해서 처리(2xx대, 3xx대 등) - 299와 같은 인식할 수 없는 상태코드가 반환되면 2xx(Successful)로 받아 요청을 정상 처리했다고 해석. - 따..
· Knowledge
Ssh로 ec2에 접속하여 build를 할 때 아무리 기다려도 빌드가 끝나지 않는 경우가 있다. git clone으로 프로젝트를 가져와 빌드했는데 빌드가 끝나지 않길래 환경설정을 잘못해 줘서 충돌이 난 건가 의심했는데 알고 보니의 메모리가 부족해서 일어난 문제였다.  Aws ec2 프리티어인 t2.micro의 경우 램이 1gb이다. 1기가 가지고 스프링을 빌드하기엔 역부족이었나 보다.메모리가 더 큰 인스턴스를 사용하면 깔끔하게 해결할 수 있지만 과금 폭탄이 무섭기 때문에 차선책을 이용하여 해결했다.  바로 가상메모리를 사용하는 방법이다. Ec2의 디스크 용량을 램처럼 사용할 수 있다. 리눅스에서는 SWAP 메모리를 지정하여 HDD의 일부를 RAM처럼 사용할 수 있게 해 준다. 램을 증설한 효과를 얻는 것..
· Knowledge
Raspberry Pi OS(32-bit) 2022-09-22 릴리즈 Bullseye 버전 기준. 터미널 창을 열어서, hb@raspberrypi:~ $ bluetoothctl [bluetooth]# scan on 위의 명령어를 입력하면 아래와 같은 화면이 나온다. mac 주소 / 기기 이름 형식으로 출력이 되는데, 여기서 내 블루투스 스피커 이름을 찾는다. 그다음 이름을 통해서 블루투스 스피커 기기의 MAC 주소를 알아낸다. 알아낸 MAC 주소로, [bluetooth]# pair "mac주소" [bluetooth]# connect "mac주소" [bluetooth]# trust "mac주소" 를 입력하면 해당 블루투스 기기를 라즈베리파이에 연결은 성공한 것이다. trust "mac주소"는 다음부터 해당..
· Knowledge
VNC 창 위쪽에 마우스를 갖다 대면 10개의 파란색 아이콘이 뜨는데 그중 왼쪽에서 5번째, Transfer Files를 누르면, 다음과 같은 화면이 나온다. 좌측 하단 Send files을 눌러 내 컴퓨터에서 파일을 선택하고 Fetch files to에 저장 위치를 지정하면 그 위치로 파일이 바로 보내진다. 간단하지만 모르면 고생하는, 알면 편리한 기능이다.
· Knowledge
VNC를 쓰다 보면 화면이 VNC 창 크기에 고정되어 좀 작게 여러 창을 띄워서 보고 싶은데 창을 키우면 화면 크기가 덩달아 커져서 불편한 경우가 있다. 이러한 경우 해결 방법을 정리해보았다. RPi에서 터미널을 실행시켜서 아래 명령어를 입력한다. pi@raspberrypi:~ $ sudo nano /boot/config.txt config.txt 파일을 아래 사진과 같이 주석을 제거해주고 수정해준다. Hdmi_mode = N 부분이 화면 해상도를 설정하는 건데, https://elinux.org/RPiconfig RPiconfig - eLinux.org As the Raspberry Pi doesn't have a conventional BIOS, the various system configurati..
· Knowledge
서버와 클라이언트의 통신 과정을 간단히 정리하면 다음과 같다. 5단계에 걸쳐 진행된다. 서버를 열고 열린 서버에 클라이언트가 연결을 요청해야 하므로 서버 파일을 실행한 후 클라이언트 파일을 실행해야 한다. 1. 서버와 클라이언트로 쓸 소켓 객체를 생성 서버와 클라이언트는 소켓 생성 자체는 동일하지만 생성 이후 동작에 따라 서버와 클라이언트의 역할을 수행하게 된다. 아래 코드에서도 변수명만 다른 것을 확인할 수 있다. server_sock=socket(AF_INET, SOCK_STREAM) client_sock=socket(AF_INET, SOCK_STREAM) AF_INET : Address Family의 한 종류로, IPv4 인터넷 프로토콜을 사용한다는 의미이다. SOCK_STREAM : TCP를 사용..
· Knowledge
URI란? URI(Uniform Resource Identifier) Uniform : 리소스를 식별하는 통일된 방식. Resource : 자원, URI로 식별할 수 있는 모든 것. Identifier : 다른 항목들과 구분하는데 필요한 정보. 인터넷에 있는 자원을 나타내는 유일한 주소로, 통합 자원 식별자라고 한다. URI의 종류 URI에는 URL과 URN이 있다. URL : Uniform Resource Locator, 리소스가 있는 위치를 지정하는 방식으로 특정 서버의 리소스에 대해 정확히 어디에 위치해 있고 어떻게 접근할 수 있는지 알려준다. URN : Uniform Resource Name, 리소스에 이름을 부여하는 방식으로 리소스의 위치에는 영향을 받지 않고 그 리소스 자체를 나타내는 이름 역..
· Knowledge
웹 개발자는 평생 HTTP 기반 위에서 개발한다. 언젠가 한 번은 HTTP를 정리해봐야 할 시기가 올 것이다. 라고 김영한 님이 말씀하셨다. 기본적인 개념부터 차곡차곡 정리해보자. 인터넷 네트워크(Internet Network) 네트워크 컴퓨터들은 어떻게 서로 통신을 하는가? 상식적으로 서로 다른 매체간 통신을 하기 위해서는 연결되어 있어야 한다. 유선, 무선 등 방식과 무관하게 매개체를 통해 이어져 있어야 정보 전달이 가능하다. 이렇게 컴퓨터간 이어져 있는 매개체와 그 관계를 포괄적으로 네트워크라 한다. IP(Internet Procotol) 네트워크를 통해 통신을 할 때 수 많은 컴퓨터가 연결될텐데 통신 규칙이 정해져 있지 않으면 엉망진창이 될 것이다. 이를 방지하기 위해 IP가 등장했다. IP는 인..
· Knowledge
네트워크는 컴퓨터 공학에서 가장 근본이 되는, 필수 학문 중 하나이다. 네트워크에 대한 기초적인 내용과 소켓에 대해서 간단하게 서술하고자 한다. 네트워크란? Net + Work의 합성어로, 긴밀하게 연결되어 있는 조직, 체계라는 사전적 의미를 가진다. 컴퓨터 네트워크는 컴퓨터 간에 데이터를 전달하기 위해 연결한 통신망을 의미한다. 네트워크 프로그래밍 : 네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고받을 수 있도록 하는 것. 떨어져 있는 컴퓨터 간에 통신을 하기 위해서는 무엇이 필요할까? - 물리적 연결 - 통신을 하고자 하는 컴퓨터에는 네트워크에 연결하기 위한 장치가 필요하다. 가장 기본적으로 네트워크 카드, 케이블, 라우터로 구성되어 있다. 1. 네트워크 카드(NIC, Network I..
hyobinside
'Knowledge' 카테고리의 글 목록