programming
-
[Linux] ldconfigprogramming/Linux 2023. 3. 6. 22:23
ldconfig 공통적인 라이브러리를 사용하는 것을 동적 라이브러리라고 하는데, 바이너리를 실행할 때 shared object(.so) 등의 동적 라이브러리를 연결해 주는 링커 설정 명령어이다. 리눅스에서 .so 파일을 제대로 인식하지 못할 때 공유 라이브러리 캐시를 재설정한다. ldconfig는 존재하는 파일을 조사하고, /etc/ld.so.cache 캐시 파일을 설정하면서 필요한 라이브러리를 적재하고 심볼릭 링크를 만드는 역할을 한다. /etc/ld.so.conf.d/ 에 .conf 파일을 추가, 수정하거나 LD_LIBRARY_PATH 를 변경하게 된다면 ldconfig를 통해 라이브러리를 다시 설정해야 한다. ldconfig 옵션 -C cache : /etc/ld.so.cache 파일 대신 지정한 ..
-
[Python] 타이핑, 타입 힌트 (typing / type hint)programming/Python 2022. 11. 6. 22:06
최근 회사 프로젝트에서 AI모델 개발, 웹 개발, 배포까지 혼자서 해야 했던 프로젝트가 있습니다. 집에 가서도 모델을 튜닝하고 백엔드 로직을 작성하고 DB도 만들고... 프론트도 하고.. 개발 중에 여기저기서 발생하는 문제들을 해결하다가 보면 어느 순간 제가 작성한 코드를 보면 많은 변수들의 타입을 알지 못해서 맨탈이 나갈 때가 있습니다. 프로그램의 복잡도가 높아지고 거대해질수록 이러한 문제는 빈번하게 발생합니다. 파이썬은 동적타입언어(dynamically typed language)여서 변수에 타입을 알아서 동적으로 지정해주기 때문에 빠르게 개발을 좋지만 프로그램이 점점 거대해질수록 타입을 알지 못하는 변수들 때문에 생상성이 급격하게 하락할 수 있습니다. 이러한 단점을 보안하기 위해 Python에서는 ..
-
[Linux] tar 와 tar.gz 차이 압축, 압축 해제programming/Linux 2022. 7. 8. 11:54
tar 리눅스에서 압축 파일을 다룰때 대부분 tar를 많이 사용하는데 tar, tar.gz, tar.bz2 다양하게 사용된다. tar는 (Tape ARchiver)의 앞 글자들을 따서 tar라는 이름으로 만들어졌다. "tar로 압축(compress)한다"는 표현을 쓰는 경우가 많은데, 정확히 말하자면 tar 자체는 "데이터의 크기를 줄이기 위한 파일 압축"을 수행하지 않는다. 아래의 그림과 같이 여러파일을 하나의 파일로 묶는 용도로 사용된다. 대신, tar옵션을 사용하여 데이터의 크기를 줄이기 위한 파일 압축(gzip, bzip2)를 수행할 수 있다. tar가 많이 사용되는 이유 중 한가지는, 단순 아카이버 기능에 더해, tar로 묶여지기 전 파일들의 속성과 심볼릭 링크, 디렉토리 구조등을 그대로 가져갈..
-
[Django]Startproject, Startapps 명령어로 생성되지 않은 파일에서 장고 사용하기programming/Django 2022. 5. 6. 14:56
오류 파이썬 장고에서 프로젝트나 앱을 만들면 해당 이름의 폴더와 .py 파일이 생성되는데 생성한 프로젝트 안에서 다른 .py파일을 생성하고 장고에 등록된 모델 또는 함수를 사용할 때 다음과 같은 애러가 발생됩니다. django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. ImproperlyConfigured( django.core.excep..
-
[Django]Django CORS Errorprogramming/Django 2022. 5. 5. 14:56
CORS CORS(Cross Origin Resource Sharing) 웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조입니다. CORS Error 대부분 웹 브라우저는 Javascript를 이용한 AJAX(Asynchronous Javascript XML) 통신을 통한 데이터 송수신을 하는데, 다른 도메인을 가진 서버의 URL을 호출해 데이터를 가져오려고 하는 경우 보안 문제인 Cross Domain 에러를 발생시킵니다. 왜냐하면 내가 웹 서비스에서 사용하기 위해 다른 서브 도메인을 가진 API 서버를 구축했는데, 내가 아닌 다른 웹 서비스에서 이 API 서버에 접근해서 마음대로 API를 호출해서 사용하면 안 되기 때문입니다. 동일 출..
-
[Python] List보다 Numpy 가 빠른이유programming/Python 2022. 4. 23. 11:50
List vs Numpy 파이썬에서 List는 여러 값들을 저장할 수 있는 자료구조로써 활용도가 매우 높습니다. 리스트는 다양한 자료형의 데이터를 여러 개를 저장할 수 있으며 쉽게 데이터를 수정할 수 있습니다. 하지만 데이터의 처리 양이 많아지고 처리방법이 복잡해질수록 많은 사람들은 Numpy ndarray를 사용합니다. 오늘은 많은 사람들이 왜 List 보다 Numpy ndarray를 더 많이 사용하는지 알아보도록 하겠습니다. Numpy 큰 matrix 처리 및 다양한 연산 기능을 제공 합니다. 반복문 없이 데이터 배열에 대한 처리를 지원합니다. 선형대수와 관련된 다양한 기능을 제공합니다. C, C++, 포트란 등의 언어와 통합이 가능합니다. Built-in List 보다 Numpy의 ndarray 가..
-
[Git,GitHub]Git 로그인 실패 Error, Access Token 발급 받는법programming/Git,Github 2022. 4. 4. 14:34
안녕하세요 오늘은 깃 로그인 실패 오류를 포스팅해보려 합니다. 회사에서 프로젝트 레포지토리리를 클론 하러려고 하는데 갑자기 잘되다가 오류 하나를 만나게 되었습니다. 에러를 보니까 이제 비밀번호 로그인 방식은 2021년 8월 13일 이후로 지원을 안 하고 토큰이 필요하다고 하네요 토큰에 대해서는 다른 포스팅에서 다루기로 하고 오늘은 빠르게 토큰을 발급받아 오류를 해결해 보십시다 아래의 링크에 토큰에 대해 조금 더 자세히 나와 있습니다! https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ Token authentication requirements for API and Git operations..
-
[Python]_8. 튜플(Tuple)programming/Python 2021. 11. 17. 23:00
튜플(Tuple) 이번에는 '튜플(Tuple)'에 대해 알아보도록 하겠습니다. 튜플은 리스트와 매우 비슷합니다. 튜플과 리스트가 서로 다른 점이 있다면, 대괄호 대신에 소괄호로 묶어서 표현하며 리스트는 요소의 변경이 가능한 반면에 튜플은 요소의 변경이 불가능하다는 특징을 지니고 있습니다. 우선 튜플이 어떠한 형태를 가지고 있는지 먼저 알아보도록 하겠습니다. >>> tuples = (1, 2, 3, 4) >>> type(tuples) 위의 코드를 보시면 리스트와는다르게 소괄호로 묶어서 정의하며 , 로 각각의 요소를 구분합니다. 아래의 코드처럼 둘러싸고있는 소괄호를 제거하거나 리스트와 똑같이 튜플 안에 튜플을 요소로 가질 수 있습니다. >>> tuples = ('a',) >>> type(tuples) >>>..