분류 전체보기

컴퓨터 사이언스/운영체제

Demand Paging (Memory Management Policy)

What Page Fault Handler doesStop the instruction that is trying to translate the address until we can retrieve the contentsAllocate a page in memory to hold the new page contentsLocate the page on disk using the page table entryCopy the contents of the page from diskUpdate the page table entry to indicate that the page is in memoryLoad the TLBRestart the instruction that was addressing the virtu..

컴퓨터 사이언스/Database

Redis

개요 key-value를 가진 NoSQL에 속하는 데이터베이스로 주로 비정형 데이터를 다루는 비관계형 데이터베이스이다. 여기서 비정형 데이터란 식별 가능한 구조나 아키텍쳐가 없는 데이터를 말한다. 특징 key-value구조를 가지기 때문에 쿼리를 작성할 필요가 없다.

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

Union SQL Injection Process

https://www.notion.so/6-79e24d28505b4028a91f9f9fda442c53?pvs=4

보안/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를 따로 지정할 필..

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