본문 바로가기

전체 글

(351)
[리눅스] 20. 텍스트 편집 1. 텍스트 처리 1) cat - 파일과 쵸준 출력을 연결 cat 명령어는 텍스트 파일을 만들 수 있다. # foo.txt 파일 생성 $ cat > foo.txt ssak dook. # foo.txt 파일 출력 $ cat -A foo.txt ^Issak dook. $ # 줄 번호롸 공백 줄을 제거해서 출력 $ cat -ns foo.txt 1 ssak 2 3 dook -A옵션 : 텍스트 내의 비출력 문자를 표시한다. (ex. 탭 또는 스페이스) ^I : 탭 문자와 동일하다. $ : 스페이스를 의미한다. n옵션 : 줄 번호를 매긴다. s 옵션 : 공백 줄을 제거한다. 2) sort - 텍스트 파일의 행을 정렬 커맨드라인에 명시된 하나 이상의 파일의 내용물들을 정렬하고 표준 출력으로 결과를 전달한다. # fo..
[리눅스] 19. 정규 표현식 1. 정규 표현식이란? 정규 표현식은 텍스트에서 패턴을 인식하는 심볼 표기법이다. 텍스트 조작 문제의 해결을 용이하게 하기 위해 많은 커맨드라인 툴들과 대부분의 프로그래밍 언어에 제공된다. 2. grep - 텍스트를 통한 검색 grep는 해당 문자열을 가진 파일을 출력한다. 즉 $ ls /usr/bin | grep zip​ /usr/bin 경로에서 zip 문자열을 파일명에 포함한 모든 파일을 나열하라라는 의미이다. grep 옵션 -i : 대소문자 무시 -v : 반전 매치(해당 문자열 제외) -c : 일치하지 않는(-v 옵션을 사용하면 일치하지 않는다는 뜻) 파일의 수 -l : 일치하지 않는 파일 각각의 이름을 출력 -L : 일치하지 않는 파일의 이름만 출력 -n : 일치하는 파일의 행 번호를 붙인다. -..
백엔드 개발자의 로드맵 들어가기 앞서.. 비전공자이면서 개발 공부를 시작하고 프레임워크와 여러 기술 스택을 입문 정도는 사용할 수 있지만, CS 공부를 해본 적이 거의 없다. 현재 무엇을 공부해야하는지 또는 앞으로 있을 면접을 준비하기 위해서 CS 공부를 하기로 했다. 마침, roadmap.sh의 2021 버전의 백엔드 개발자 로드맵을 번역한 이미지가 있어서, 이것을 토대로 CS 공부를 해볼 것이다. (백엔드 로드맵의 추천 또는 대체 가능한 옵션은 본인이 작성한 것이 아님) 백엔드 로드맵의 목적 이 로드맵은 웹 개발에 대한 전체적인 방향과 함께 앞으로 무엇을 배워야 할지를 안내하며, 몇몇 도구가 그저 힙하거나 유행이라는 이유만으로 배우는 것은 피하고자 함에 목적이 있다. 어떤 도구가 다른 도구보다 어떤 경우에 더 적합한지 그 ..
[DRF] queryset과 get_queryset()의 차이점 본인은 DRF 라이브러리에서 viewsets과 mixin 기능을 사용해서 API 개발을 자주한다. 클래스형 view를 개발하다보면, def get_queryset(self):​ 이라는 함수를 클래스 내에 내장하는 경우가 있는데 class API(mixin.어쩌고, viewsets.어쩌고): queryset = 어쩌고 . . .​ 위의 코드 처럼 queryset을 기본적으로 사용할 것이다. 그러면 get_queryset 함수는 왜 사용해야할까? queryset VS get_queryset() 분명 queryset과 get_queryset()은 같은 동작을 한다. 하지만, 필터의 값이 동적일 경우 잘못된 쿼리가 나올 수 있다. # 필터의 값이 동적일 경우 잘못된 쿼리가 나올 수 있음 # (X) class L..
[Django] DecimalField DecimalField 10 진수 표현으로, python에서 Decimal 인스턴스로 나타낸다. django.db.models.fields.DecimalField에 해당한다. FloatField는 소수점의 근사값을 제공하지만 DeciamalField는 소수점 자리를 설정해서 원하는 자릿수만큼 출력이 가능하다. 1. 구성 인자 DecimalField(max_digits, decimal_places, coerce_to_string=None, max_value=None, min_value=None) max_digits : 숫자에 허용되는 최대 자릿수를 말하며, None이거나 decimal_places보다 크거나 같은 정수여야 함 decimal_places : 숫자와 함께 저장할 소수 자릿수를 말함 coerce..
[DB 이론] Index (with. Django) Index : MySQL과 Django의 기준으로 하였다. 1. Index Index 란..? RDBMS에서 검색 속도를 높이기 위해서 사용되는 기술이다. index는 table의 동작속도(조회)를 높여주는 자료구조이며, 데이터의 위치를 빠르게 찾아주는 역할이다. Table의 컬럼을 따로 파일로 저장해서 검색시 해당 Table의 레코드를 full scan하는 것이 아니라, 저장한 Index 파일을 검색해서 검색 속도를 향상시킨다. 단점.. 조회속도는 빨라지지만 UPDATE, INSERT, DELETE의 속도는 저하된다는 단점이 있다. 2. Index 생성 및 삭제 1) 인덱스 생성 # 단일 인덱스 CREATE INDEX 인덱스이름 ON 테이블이름(필드이름1) # 다중 컬럼 인덱스 CREATE INDEX ..
[리눅스] 18. 파일 보관 및 백업 컴퓨터 시스템을 관리하는 데 있어서 가장 기초적인 작업 중 하나가 바로 시스템의 데이터를 안전하게 유지하는 것이다. 시스템 파일을 백업하거나, 시슨템 관리자가 아니더라고 많은 양의 파일을 장치 간이나 특정 위치 간에 이동시키거나 복사하는 방법을 정리할 것이다. 1. 파일 압축하기 1) gzip - 파일 압축 및 압축 해제하기 gzip 프로그램은 하나 이상의 파일을 압축할 때 사용된다. 이와 함께 사용되는 gunzip 프로그램(압축 해제)은 압축 파일을 압축되기 이전의 원본 상태로 복원시켜준다. $ gzip foo.txt $ gunzip foo.txt​ gzip foo.txt : gzip 프로그램을 실행하여 원본 파일을 foo.txt.gz 라는 압축 파일로 바꾼다. 또한 원본의 크기보다 축소되어서 압축이 ..
[리눅스] 17. 파일 검색 유닉스형 시스템이 세대를 거쳐 전해 내려온 전통에 따라, 리눅스 파일시스템이 꽤나 체계적이다. 이번 내용은 시스템의 파일을 검색하는 데 사용하는 명령어를 정리할 것이다. 1. locate - 손쉽게 파일 찾기 $ locate bin/zip locate 프로그램은 경로명에 대한 빠른 데이터베이스를 검색을 수행하고 주어진 조건에 일치하는 모든 이름을 출력한다. 예를 들면, zip으로 시작하는 모든 프로그램을 찾으려고 한다. 위의 코드처럼 bin/ 으로 끝나는 디렉토리명을 지정한 다음, 경로명을 검색하고 bin/zip 문자열이 포함된 결과를 출력한다. /usr/bin/zip /usr/bin/zipcloak . . .​ 2. find - 다양한 방법으로 파일 찾기 # $ find ~ # 파일의 개수를 출력해주는..