본문 바로가기
반응형

분류 전체보기76

[혼공컴운] CH10. 프로세스와 스레드 10-1. 프로세스 개요프로세스 관리는 운영체제의 핵십 서비스이다. 운영체제가 관리하는 프로세스가 무엇인지 알아보고 프로세스가 실행되는 과정들을 살펴본다.프로세스"실행 중인 프로그램" = "프로세스"프로그램은 실행되기 전가지는 그저 보조기억장치에 있는 데이터 덩어리일 뿐이지만, 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 된다. = "프로세스를 생성한다."프로세스 직접 확인하기 컴퓨터가 부팅되는 순간부터 수많은 프로세스들이 실행된다. 윈도우에서는 작업 관리자의 [프로세스] 탭에서 확인할 수 있고, 유닉스 체계의 운영체제에서는 ps 명령어로 확인할 수 있다. 포그라운드 프로세스사용자가 볼 수 있는 공간에서 실행되는 프로세스 백그라운드 프로세스사용자가 보지 못하는.. 2025. 4. 8.
[LLaVA] LLaVA : Large Language and Vision Assistant LMM? Large Multi-Modal의 약자. text 뿐만 아니라 image, video, audio 등등도 동시에 이해하는 모델. ChatGPT, LLaVA와 같은 거대 언어 모델들 이어서 LMM 모델도 많이 주목 받고 있다. LLM은 인간에게 보다 높은 상호작용을 제공하고, 자유도가 높은 답변을 제공한다. LLM에서 오픈소스로 유명한 모델이 LLaVA이다. LLaVA는 'Visual Instruction Tuning'이라는 새로운 방법론을 통해 개발되었다. 기존의 언어 모델이 다양한 지시문에 따라 적절한 출력을 생성하도록 학습하는 'Instruction Tuning'을 시각 정보로 확장한 것이다. Abstract최근 GPT-4와 같은 언어 모델로 instruction data를 생성하여 LLM모.. 2025. 2. 23.
[혼공컴운] CH 8. 입출력장치 08-1 장치 컨트롤러와 장치 드라이버장치 컨트롤러입출력장치의 종류는 매우 다양하다.키보드, 모니터, USB 메모리, CD-ROM, SSD, 마우스, 프린터, 스피커, 마이크 등 다양한 종류의 입출력장치가 있다장치마다 속도, 데이터 전송 형식 등도 다양하다.따라서 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기가 어렵다.일반적으로 CPU와 메모리의 데이터의 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.그렇기 때문에 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러(device controller)라는 하드웨어를 통해 연결된다.장치 컨트롤러는 대표적으로 다음과 같은 역할을 통해 앞서 언급한 문제를 해결한다.CPU와 입출력장치 간의 통신중개 : 정보 규격화 문제 해결오류 검출 : 연결된 입출.. 2025. 2. 11.
[혼공컴운] CH7. 다양한 보조기억장치 학습 목표하드디스크 구조와 작동 원리를 이해합니다.플래시 메모리 구조와 작동 원리를 이해합니다.RAID의 의미와 다양한 RAID 레벨을 학습합니다.07-1. 다양한 보조기억장치하드 디스크자기적인 방식으로 데이터를 저장하는 보조기억장치 ('자기 디스크'라고도 불림)CD나 LP와 비슷하게 구성되어 있음 1. 플래터 (platter)하드디스크에서 실질적으로 데이터가 저장되는 곳 (동그란 원판)자기 물질로 덮여있어 수많은 N극(0)과 S극(1)을 저장한다. CD나 LP에 비해 하드디스크는 훨씬 더 많은 양의 데이터를 저장해야하므로 일반적으로 여러 겹의 플래터로 이루어져있고 플래터 양면을 모두 사용할 수 있다.2. 스핀들 (spindle)플래터를 회전시키는 구성요소플래터를 돌리는 속도는 분당 회전수를 나타내는 R.. 2025. 2. 2.
[혼공컴운] CH6. 메모리와 캐시 메모리 학습 목표RAM의 특징과 종류에 대해 학습합니다.논리 주소와 물리 주소의 차이를 이해합니다.논리 주소를 물리 주소로 변환하는 방법을 이해합니다.캐시 메모리와 저장 장치 계층 구조의 개념을 이해합니다.06-1. RAM의 특징과 종류RAM의 특징‘메모리’라고 지칭했던 저장 장치인 RAM실행할 프로그램의 명령어와 데이터가 저장된다.전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아가는 저장 장치 = 휘발성 저장 장치 (volatile memory)ex. 명령어 , 데이터실행할 대상을 저장전원이 꺼져도 저장된 내용이 유지되는 저장 장치 = 비휘발성 저장 장치 (non-volatile memory)ex. 보조 기억장치 (SSD, CD-ROM, USB), 프로그램보관할 대상을 저장CPU는 보조기억장치에 직접 .. 2025. 1. 28.
[혼공컴운] CH5. CPU 성능 향상 기법 학습 목표빠른 CPU를 위한 설계 기법을 학습한다.빠른 CPU를 위한 명령어 병렬 처리 기법을 학습한다.RISC와 CISC의 차이에 대해 이해한다.05-1. 빠른 CPU를 위한 설계 기법클럭컴퓨터 부품들은 ‘클럭 신호’에 맞춰 일사불란하게 움직인다.CPU는 ‘명령어 사이클’이라는 정해진 흐름에 맞춰 명령어들을 실행한다.클럭신호가 빠르게 반복되면 CPU를 비롯한 컴퓨터 부품들은 크만큼 빠른 박자로 움직이기 때문에 클록속도가 높은 CPU는 일반적으로 성능이 좋다.헤르츠(Hz)단위로 측정 (1초 기준)클럭 속도는 일정하지 않다.CPU는 base 클럭 속도와 max 클럭 속도로 나눠져있는데, CPU가 고성능을 요하는 순간에는 클럭속도를 높이고, 그렇지 않을때는 낮추기도 한다.최대클럭속도를 강제로 끌어올릴때는 오.. 2025. 1. 28.
[python] GitPython 라이브러리 branch로 프로젝트 관리를 하다보니 현재 사용하고 있는 브랜치명을 가져와야하는 경우가 생겼다.이때 사용한 라이브러리가 GitPython !1. GitPython?git 저장소와 상호작용(작업을 자동화하고 조작)하는데 사용되는 python 라이브러리이다. 버전 관리 시스템을 활용하는 개발 프로젝트에 유용하다.명령줄 프로그램을 호출하여 git 저장소 데이터에 쉽게 엑세스할 수 있도록 git 객체의 추상화를 제공한다. 2. 주요기능저장소 관리: 로컬 및 원격 저장소의 생성, 복제, 삭제 등을 관리할 수 있습니다.커밋 관리: 커밋 생성, 로그 검색, 커밋 간 비교 등의 기능을 제공합니다.브랜치 및 태그 관리: 브랜치 생성, 삭제, 체크아웃, 태그 작업 등을 수행할 수 있습니다.파일 상태 및 변경 내용 추적:.. 2024. 10. 13.
[코테챌린지] 부등호 📌 구해야 하는 정답k개의 부등호가 주어집니다. (예: 3개의 부등호 -> 4개의 숫자가 필요)부등호의 순서를 만족하는 최대값과 최소값을 구하는 문제입니다.📌 풀이숫자의 순열을 생성:주어진 부등호에 맞는 숫자 조합을 찾기 위해 0부터 9까지의 숫자 중에서 필요한 개수만큼 순열을 생성합니다.부등호 조건을 만족하는지 확인:각 순열에 대해 부등호 조건을 확인하고, 부등호 조건을 만족하면 그 순열을 사용합니다.최대값과 최소값을 구함:조건을 만족하는 숫자 중에서 가장 큰 값과 작은 값을 찾아 출력합니다.순열을 이용하는 경우, 시간 복잡도는 O(n!) 가 됩니다.예를 들어, k=9일 경우에는 10개의 숫자 중에서 순열을 구하는 방식이므로, 최대 10!이 발생할 수 있습니다.10!=3,628,800 이므로 충분히.. 2024. 9. 12.
[코테 챌린지] 13일차. 수찾기 입력: 1. 첫 줄에 배열의 크기 N이 주어집니다. (1 ≤ N ≤ 100,000)2. 두 번째 줄에 N개의 정수로 이루어진 배열 A가 주어집니다. 배열의 원소는 중복되지 않습니다.3. 세 번째 줄에 M이 주어집니다. (1 ≤ M ≤ 100,000)4. 네 번째 줄에 M개의 정수로 이루어진 배열 B가 주어집니다. 배열의 원소는 중복되지 않습니다.출력: - 배열 B의 각 원소가 배열 A에 존재하면 1, 존재하지 않으면 0을 출력합니다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정.. 2024. 8. 17.
[코테 챌린지] 11일차. 거스름돈 춘향이는 편의점 카운터에서 일한다.손님이 2원짜리와 5원짜리로만 거스름돈을 달라고 한다. 2원짜리 동전과 5원짜리 동전은 무한정 많이 가지고 있다. 동전의 개수가 최소가 되도록 거슬러 주어야 한다. 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지 알려주는 프로그램을 작성하시오.예를 들어, 거스름돈이 15원이면 5원짜리 3개를, 거스름돈이 14원이면 5원짜리 2개와 2원짜리 2개로 총 4개를, 거스름돈이 13원이면 5원짜리 1개와 2원짜리 4개로 총 5개를 주어야 동전의 개수가 최소가 된다.- 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.- 거스름돈 동전의 최소 개수를 출력한다. 만약 거슬러 줄 수 없으면 -1을 출력한다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작.. 2024. 8. 15.
[코테 챌린지] 10일차. 컵홀더 십년이면 강산이 변한다. 강산이네 동네에 드디어 극장이 생겼고, 강산이는 극장에 놀러갔다. 매점에서 콜라를 산 뒤, 자리에 앉은 강산이는 큰 혼란에 빠졌다. 양쪽 컵홀더를 이미 옆 사람들이 차지했기 때문에 콜라를 꽂을 컵 홀더가 없었기 때문이다. 영화를 보는 내내 콜라를 손에 들고 있던 강산이는 극장에 다시 왔을 때는 꼭 콜라를 컵 홀더에 놓겠다는 다짐을 한 후 집에 돌아갔다.극장의 한 줄에는 자리가 N개가 있다. 서로 인접한 좌석 사이에는 컵홀더가 하나씩 있고, 양 끝 좌석에는 컵홀더가 하나씩 더 있다. 또, 이 극장에는 커플석이 있다. 커플석 사이에는 컵홀더가 없다.극장의 한 줄의 정보가 주어진다. 이때, 이 줄에 사람들이 모두 앉았을 때, 컵홀더에 컵을 꽂을 수 있는 최대 사람의 수를 구하는 프로그.. 2024. 8. 14.
[코테 챌린지] 9일차. 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. - 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다.- 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들.. 2024. 8. 13.
[코테 챌린지] 8일차. 빙고 빙고 게임은 다음과 같은 방식으로 이루어진다.먼저 아래와 같이 25개의 칸으로 이루어진 빙고판에 1부터 25까지 자연수를 한 칸에 하나씩 쓴다.다음은 사회자가 부르는 수를 차례로 지워나간다. 예를 들어 5, 10, 7이 불렸다면 이 세 수를 지운 뒤 빙고판의 모습은 다음과 같다.차례로 수를 지워가다가 같은 가로줄, 세로줄 또는 대각선 위에 있는 5개의 모든 수가 지워지는 경우 그 줄에 선을 긋는다.이러한 선이 세 개 이상 그어지는 순간 "빙고"라고 외치는데, 가장 먼저 외치는 사람이 게임의 승자가 된다.철수는 친구들과 빙고 게임을 하고 있다. 철수가 빙고판에 쓴 수들과 사회자가 부르는 수의 순서가 주어질 때, 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지를 출력하는 프로그램을 작성하시오.. 2024. 8. 12.
[코테 챌린지] 7일차. 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의 덩치가 각각 (45, 181), (55, 173)이라면 몸무게는 D가 C보다 더 무겁고, 키는 C가 더 크므로, "덩치"로만 볼 때 .. 2024. 8. 11.
[코테 챌린지] 6일차. 나무조각 동혁이는 나무 조각을 5개 가지고 있다. 나무 조각에는 1부터 5까지 숫자 중 하나가 쓰여져 있다. 또, 모든 숫자는 다섯 조각 중 하나에만 쓰여 있다.동혁이는 나무 조각을 다음과 같은 과정을 거쳐서 1, 2, 3, 4, 5 순서로 만들려고 한다.- 첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.- 두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.- 세 번째 조각의 수가 네 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.- 네 번째 조각의 수가 다섯 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.- 만약 순서가 1, 2, 3, 4, 5 순서가 아니라면 1 단계로 다시 간다.처음 조각의 순서가 주어졌을 때, 위치를 바꿀 때 마다 조각의 순서를 출력하는 프로그.. 2024. 8. 10.
[코테 챌린지] 4일차. 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.- 첫째 줄에 반에 있는 학생의 수 n이 주어진다. (1 ≤ n ≤ 100)- 다음 n개 줄에는 각 학생의 이름과 생일이 "이름 dd mm yyyy"와 같은 형식으로 주어진다. - 이름은 그 학생의 이름이며, 최대 15글자로 이루어져 있다. dd mm yyyy는 생일 일, 월, 연도이다. (1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31) - 주어지는 생일은 올바른 날짜이며, 연, 월 일은 0으로 시작하지 않는다.- 이름이 같거나, 생일이 같은 사람은 없다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 .. 2024. 8. 8.
[코테 챌린지] 3일차. 단어 정렬 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로단, 중복된 단어는 하나만 남기고 제거해야 한다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정 등을 작성해주시면 됩니다.알고리즘 선택순서대로 정렬해주는 sort() 함수 사용📌코드 설계하기 위의 문제 탐색하기에서 고민한 과정을 토대로 문제 풀이에 대한 실마리를 잡으셨을 것 같습니다.이제 문제 풀이를 본격적으로 하기 전, 이 문제를 .. 2024. 8. 7.
[코테 챌린지] 2일차. 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000)둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다.나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할.. 2024. 8. 6.
[코테 챌린지] 1일차. 일곱난쟁이 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다. - 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정 - 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정 - 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고.. 2024. 8. 5.
[HUCV] Human Pose Estimation4 - Mask R-CNN Mask R-CNN Overall Pipeline 기존 top-down approach들과 비교하여 다른 점기존 방법들은 입력 이미지에서 사람 영역을 crop and resize한다. RoIAlign -> 입력 이미지가 아니라 feature map에서 crop and resize한다. Human detection과 pose estimation network가 공유 -> end-to-end learning and much more efficientRoIAlign Feature map에서 "crop and resize" (미분가능함)인간 영역의 feature를 bilinear interpolation을 통해서 추출함추출된 단일 사람의 feature는 pose estimation에 사용됨2D Human Pos.. 2024. 5. 3.
[python] Clean Code in Python 1. 코드 포매팅과 도구 1. 프로그래밍 언어프로그래밍 언어를 컴파일하고 실행시키는 주체는 컴퓨터이나, 프로그램은 단 한번 실행하고 멈추는 것이 아니라 지속적으로 유지보수하고 발전해나가는 존재이다. 즉, 프로그래밍 언어는 인간의 아이디어를 다른 개발자에게 전달하는 것이다. 컴파일 (compile)? 사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꿔주는 과정2. 클린코드좋은 코드와 나쁜 코드를 구분할 수 있어야한다. 코드 포매팅 != 클린코드→ PEP-8과 같은 지침에 따라 코드를 포매팅하고 구조화하는 것은 클린코드의 최소요건이다.일관성 → PEP-8과 같은 코딩 가이드를 준수하는 것은 SW 일관성을 유지하는 것에 도움을 준다. →일관성 있는 코드는 오류를 감지하기 쉬우며, 신속하게 패턴을 파악하여 개발자의 이해를 높일.. 2024. 5. 1.
[HUCV] Human Pose Estimation3 - 2D human pose estimation의 분류 2D Multi-Person Pose Estimation 의 두가지 접근법 (Top-down 접근법 vs. Bottom-up 접근법)1. Top-down 접근법 Human detection + single person pose estimationMake R-CNN이나 YOLO 같은 Object Detector를 Human Detector로 사용해서 사람의 바운딩 박스를 미리 얻는다.바운딩 박스 얻으면 사람의 부분을 crop해서 Single-Person 인 것처럼 만들어준다. Single-Person마다 2D Single-Person Pose Estimation를 돌려서 각 사람마다 2D Pose를 얻는다.각 사람의 2D pose를 원래 Image space로 transform 시켜서 최종적으로는 입력이미.. 2024. 4. 30.
[AWS] 클라우드 컴퓨팅 학습 목표 AWS EC2의 이점 파악 서로 다른 Amazon EC2 인스턴스 유형을 파악 Amazon EC2의 다양한 결제 옵션 구분 Amazon EC2 Auto Scaling의 이점 파악 Elastic Load Balancing의 이점 및 사례 파악 Amazon Simple Notification Secvice (Amazon SNS)와 Amazon Simple Queue Service (Amazon SQS)의 차이점 이해 AWS 컴퓨팅 옵션 이해 Amazon Elastic Compute Cloud 줄여서 EC2라고 하는 서비스가 어떤 서비스인지 알아보고자 한다. EC2 서비스를 운영하기 위해서는 '서버'(= 물리적인 서버가 아닌 인터넷을 통해 접근하는 가상화된 서버)를 통해 웹 애플리케이션을 호스팅하고.. 2024. 3. 15.
[AWS] AMAZON WEB SERVICES 소개 학습 목표 AWS의 이점 이해 온디맨드식 제공과 클라우드 배포의 차이점 설명 종량 과금제 모델 요약 설명 클라우드 컴퓨팅이란? AWS에서는 IT에서의 설치 및 백업과 같은 반복적이고 시간이 오래걸리는 획일적인 작업 부담을 돕고자 한다. 그래서 AWS에는 많은 서비스가 있는데 이것은 기업마다 원하는 차별화된 요소들이 모두 포함되어 있다는 의미이다. 클라이언트 - 서버 모델이란? 클라이언트 : 사람이 컴퓨터 서버에 요청을 보내기 위해 상호 작용하는 웹 브라우저 또는 데스크탑 애플리케이션 (Ex, 커피숍의 손님) 서버 : 일종의 가상 서버인 Amazon Elastic Compute Cloud (Amazon EC2)와 같은 서비스 (Ex, 커피숍의 바리스타) - 비즈니스 종류와는 상관없이 기본적으로 고객이 요청.. 2024. 3. 9.
[AWS] AWS CIL 설치 리눅스 기반 설치 방법 $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" $ unzip awscliv2.zip $ sudo ./aws/install 참고 자료 : https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html 2024. 3. 8.
[에러] Cannot perform an interactive login from a non TTY device CLI로 AWS에 접속할 때 발생한 에러이다. * CLI : 명령줄 인터페이스 (Command-Line Interface 또는 Character User Interface의 줄임말) Unable to locate credentials. You can configure credentials by running "aws configure". Error: Cannot perform an interactive login from a non TTY device > AWS CLI가 대화형 로그인을 시도하려고 했으나, 실행중인 환경이 TTY(TeleTYpewriter)를 지원하지 않아 발생한 것이다. 보통 이러한 문제는 스크립트 또는 자동화된 환경에서 AWS CLI를 실행할 때 발생 해결 방법으로는 두 가지가 있다... 2024. 3. 8.
[Docker] fastapi를 도커화하는 방법 python 기반의 FastAPI를 도커화 해서 파이프라인에 올리는 작업을 해야한다. FastAPI를 도커화할 때 필요했던 것들을 모두 정리하려고 한다. 1. 도커 이미지 생성 2. 도커 컨테이너 실행 3. 포트포워딩 4. 워커수 설정 1. 도커 이미지 생성 도커 이미지를 생성하기 전에 Dockerfile 을 만들어준다. Dockerfile : 애플리케이션을 Docker 컨테이너로 빌드하기 위한 파일 # Dockerfile # server image 초기설정 : python 3.9.10 버전을 사용 FROM python:3.9.10 # 작업할 경로 (해당 경로가 없다면 새로 생성됨) WORKDIR /api # 작업할 경로에 현재 코드들을 모두 복사해둔다. COPY . . # image가 빌드되었을 때 수.. 2024. 3. 7.
[python] SOLID principles 객체 지향 프로그래밍(OOP)을 사용하여 python 프로젝트를 진행할 때 다양한 클래스와 객체가 상호작용하여 특정 문제를 해결하는 방법을 계획하는 것(OOD)은 중요하다. 객체 지향 프로그래밍(OOP) ? Object-Oriented Programming 필요한 데이터를 추상화하여 속성, 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호 작용을 통해 로직을 구성하는 방식 객체 지향 설계 (OOD) ? 다양한 클래스와 객체가 상호작용하여 특정 문제를 해결하는 방법을 계획하는 것 (Class design) SOLID 원칙 참고 (5가지의 객체 지향 설계 원칙 세트) 목표 1. 각 SOLID 원칙의 의미와 목적을 이해한다. 2. SOLID 원칙 중 일부를 위반하는 python 코드를 식별한다. 3... 2024. 2. 23.
[python] 'dict' object has no attribute 'to_csv' AttributeError: 'dict' object has no attribute 'to_csv' 해결방법 dict -> dataframe -> csv 파일로 저장 (to_csv) import pandas as pd dict = {...} dataframe = pd.DataFrame(dict) dataframe.to_csv("data.csv", header=True) 2024. 2. 13.
[이미지 처리] 알파채널 제거 def del_alpha_channel(rgba, background=(255,255,255)): ''' 알파채널 제거 ''' row, col, ch = rgba.shape if ch == 3: return rgba assert ch == 4, 'RGBA image has 4 channels.' rgb = np.zeros( (row, col, 3), dtype='float32' ) r, g, b, a = rgba[:,:,0], rgba[:,:,1], rgba[:,:,2], rgba[:,:,3] a = np.asarray( a, dtype='float32' ) / 255.0 R, G, B = background rgb[:,:,0] = r * a + (1.0 - a) * R rgb[:,:,1] = g * a.. 2024. 2. 6.
반응형