분류 전체보기

Tech/GitHub

GitHub Codespaces

개요 Github Codespaces란 Github에서 제공하는 클라우드 개발환경이다. 동작방식은 기본적으로 Docker 컨테이너 위에 Ubuntu 이미지로 생성된다. 또한 접속 방식은 브라우저, VSCode, JetBrains Gateway, Github CLI 등이 있다. 요금 정책 계정별 요금 정책 사양에 따른 요금 부과 정책 생성 방법 이미 생성되었거나 생성할 repository에서 Codespaces 카테고리를 선택한 후, Create codespace on main 버튼을 클릭한다. Codespaces 관리 Stop codespace를 통해 컨테이너를 중지시킬 수 있다. Change machine type을 통해 컨테이너의 성능을 변경시킬 수 있다. 참조 https://docs.github.c..

Tech/Docker

docker에 ubuntu 설치 및 nginx, php, mysql 웹 서버 개발환경 세팅

우선 나의 경우, mac 환경에서 docker를 이용해서 ubuntu 22.04를 띄우고, 이 위에서 개발 환경을 세팅했다. 기본적인 docker 명령어 docker images 확인 docker images -a docker image 삭제 docker rmi 'image name' 실행중인 컨테이너 확인 docker ps -a 컨테이너 실행 docker start 컨테이너ID 컨테이너 중지 docker container stop 'container ID' 컨테이너 삭제 docker container rm 'container id' 컨테이너 접속 docker exec -it 컨테이너ID /bin/bash 호스트-컨테이너 작업 폴더 복사 docker cp 컨테이너이름:컨테이너내경로 호스트내경로 그럼 먼저..

AI

AI가 가지는 위험성

우선 우리는 AI가 생상해내는 데이터가 많아질수록, 즉, 대규모 생성 모델로 인한 향후 데이터 세트의 손상이 될 것임을 알아야 한다. 따라서 앞으로의 AI는 오히려 데이터의 진위판별에 더욱 많은 비용을 사용하게 될 것이다. 동영상 표절이 쉬워진다. 노아 AI : 유튜브 조회 수와 제목 등 관련 데이터를 모아 이용자들에게 인기가 많은 영상과 키워드를 추천해주는 프로그램이다. 즉, 표절 대상 검색에 사용될 수 있다. 클로바 AI(Naver) : 음성을 듣고 대본 추출이 가능하다. 뤼튼 : 비슷한 새로운 스크립트를 생성해준다. 이렇듯 광고 수익을 바라는 블로거나 유튜버들이 AI를 활용해서 표절을 감행하고 있다. 인터넷 생태계의 황폐화 이렇게 인공지능으로 가짜 데이터가 생성되면 될수록, 오리지널은 실종되고 인공..

AI

ChatGPT 이해

ChatGPT란? Chat : 대화형 Generative : 생성하는. 그림, 동영상, 글 등 Pre-trained : 사전학습한 LLM(거대 언어 모델) 3천억개의 단어와 5조 개의 문서를 학습했다. 모든 LLM은 파운데이션 모델이다. 왜냐하면, 어느순간을 기점으로 느닷없이 나타내는 능력을 보여준다. (emergent). 따라서 사전학습하지 않은 것을 물어봐도 답할 수 있다. Transformer : 딥러닝 모델 주어진 문장들을 보고 다음 단어가 무엇일지를 확률로 예측한다. 이때 Attention Model을 사용하는데, 주어진 문장중에서 핵심 단어를 파악한다. 따라서 이 모델을 사용하면, 연산량을 높이면서도 정확성을 높일 수 있다. Transformer, Attention 모델도 구글이 오픈 소스로 ..

보안/WebHacking

SQL Injection - Union Select 로그인 우회

이번 포스팅에서는 아이디와 비밀번호를 DB에서 확인하여 일치하면 인증하는 방법을 확인해보고자 한다. 우선 이를 위한 서버 코드는 다음과 같다.

컴퓨터 사이언스/Network

fork() 시스템 콜

개요 accept() 함수의 경우 한번에 하나의 클라이언트와 연결을 맺을 수 있었다. 그렇다면 for문을 돌려 여러번의 accept() 함수를 호출할 수 있지 않을까 생각이 들 수 있다. 하지만 한 클라이언트와 연결을 설정한 후에는 해당 클라이언트가 연결을 종료할 때까지 또 다른 클라이언트와 통신할 수 없다. 이때, 사용해야 하는 것이 멀티 프로세스이며, 이에 사용되는 시스템 콜이 바로 fork()이다. fork() 시스템 콜 특정 프로세스에서 fork() 시스템 콜을 호출하면 호출한 프로세스와 똑같은 메모리 자원이 메모리에 그대로 복사된다. 이때, 복사된 프로세스를 자식 프로세스라고 하고, 복사한 프로세스를 부모 프로세스라고 한다. 즉, 부모는 자식에게 본인의 프로세스를 복사해서 전달하며, 자식은 해당..

컴퓨터 사이언스/Network

클라이언트의 시스템 콜(connect)

서버에서는 socket() 함수로 소켓 디스크립털르 할당받은 후에 bind() -> listen() -> accept() 시스템 콜을 차례대로 호출해서 클라이언트와 연결을 맺을 수 있다. 반대로, 클라이언트에서는 대기중인 서버에 연결 요청을 함으로써 서버-클라이언트 간의 연결이 생성될 수 있는데, 여기에 사용되는 시스템콜이 connect() 시스템 콜이다. 클라이언트의 소켓 생성 및 주소 할당 클라이언트의 경우에도 서버와 소켓 통신을 하려면 소켓을 하나 생성해야 한다. 즉, socket() 함수를 통해서 변수 sock에 디스크립터 번호를 지정한다. 다음으로는 연결을 요청할 서버의 주소를 소켓에 할당한다. 이때, 서버와는 달리 클라이언트는 본인의 IP address와 port number를 따로 지정할 필..

컴퓨터 사이언스/Network

stream socket vs datagram socket

socket socket은 OS를 통해 네트워크 통신을 하는 표준 방법이다. 즉, 프로그래머에게 소켓은 네트워크로 데이터를 주고 받는데 사용하는 도구이다. 이 데이터는 L5(Session 계층)에서 전송된다. 그리고 L4의 구조를 결정하는 여러 종류의 소켓 타입이 있는데, 가장 보편적인 타입이 Stream socket과 Datagram socket이다. Stream Socket 스트림 소켓은 신뢰성있는 양방향 통신을 제공한다. 즉, 한쪽에서 다른 한쪽으로의 연결을 초기화하고, 연결이 생성된 후에는 어느 쪽에서든지 다른 쪽으로 통신할 수 있다. 또한 보낸 내용이 실제로 도착했는지도 즉각적으로 확인할 수 있다. 이러한 Stream Socket은 TCP 표준 통신 프로토콜을 사용한다. 컴퓨터 네트워크에서 데이..

컴퓨터 사이언스/Network

서버의 시스템 콜(bind, listen, accept)

serv_addr 구조체에 값을 채워넣음으로써 socket의 ip address와 port number를 지정해준 후에 발생하는 bind -> listen -> accept 과정을 이번 포스팅에서 살펴보고자 한다. 소켓에 주소를 할당하는 bind 함수 bind 함수는 2가지 인자를 전달함으로써 소켓에 주소를 할당할 수 있다. 즉, 앞서 socket()함수로 받아온 descriptor sockfd가 존재하는데, 이 descriptor file에 해당하는 소켓에 serv_addr 주소를 할당하겠다는 의미이다. int bind(int sockfd, struct sockaddr *addr, socklen_t addrlen); sockfd : socket() 함수를 통해 배정받은 디스크립터 번호. serv_soc..

컴퓨터 사이언스/Network

HTTP version별 특징

HTTP version 1.0 HTTP의 초기 버전은 서버로부터 정보를 얻는 GET 기능만 가능했다.(HTTP version 0.9) 하지만 점점 인터넷이 발전하고 새로운 기능이 생겨나면서 정보를 얻는 것만으로는 충분하지 않게 되었다, 그래서 HTTP version 1.0에서는 새로운 유틸리티들이 추가되었다. Header : HTTP header를 도입해 프로토콜 방식을 유연하고, 확장 가능하게 만든 메타 데이터의 전송이 가능하게 되었다. Versioning : HTTP 요청시 사용된 버전을 명시적으로 알려주고 request line에 추가한다. Status Code : HTTP 요청은 상태 코드를 가진다. 따라서 상태 코드를 통해 receiver가 요청 처리상태를 확인할 수 있다. Content-typ..

kimjingyu
'분류 전체보기' 카테고리의 글 목록