본문 바로가기

전체 글

[WAS]Django를 활용한 웹 어플리케이션 구조 분해 열심히 데이터 분석 모델을 만들었다고 생각해보자. 이 모델을 이런저런 방식으로 다른 사람들도 사용할 수 있도록 만들고 싶은데 그러려면 뭔가 모델과 함께 작동할 화면 프로그램이 필요해보인다. 웹 어플리케이션은 화면을 바탕으로 개발한 기능을 원하는 시나리오대로 사용할 수 있는 하나의 프로그램이다. 그럼 웹어플리케이션에 대해 알아보자. 웹어플리케이션 구조 예시 -> Django를 활용한 웹어플리케이션 먼저 웹어플리케이션 구조를 살펴보자. 파이썬 django를 사용해 만드는 웹어플리케이션 구조는 위 그림과 같다. 이 구조의 웹어플리케이션이 돌아가는 방식은 다음과 같다. 1. 사용자가 PC 웹브라우저를 통해서 웹 어플리케이션에 특정행위에 대한 요청을 보낸다. * Web Browser(Chrome) -> Web S.. 더보기
[Git]Branch 조회 & 기본 Branch 변경 서비스에 설정된 Default Git branch를 조회하고, 다른 branch를 기본 branch로 변경해보자. [Git Branch 조회] git branch -a [Git Branch 변경] git checkout master 더보기
[WEB&WAS]WEB서버와 WAS에 대해서 알아보자 오늘은 WEB서버와 WAS서버를 각각 정의하고, 차이점과 활용방식에 대해 간단히 정리하고자 한다. WEB(Web Server)이란? 작성된 HTML페이지등을 네트워크망에 종속되지 않고, 웹서비스를 할 수 있도록 하는 어플리케이션으로, 소프트웨어와 하드웨어로 이루어진 서버로 구분될 수 있고 WEB서버는 '정적 파일'을 처리하는데 중점을 두는 서버이다. 여기서 '정적파일'이라 함은 HTML, CSS, JavaScript, 이미지와 같이 정의된 내용의 파일을 포함한다. 그리고, 웹서버는 클라이언트의 요청을 받아 해당 요청에 따라 정적파일을 반환한다. (1) 소프트웨어 웹서버 : 웹 브라우저 클라이언트로부터 HTTP요청을 받아들이고, HTML문서(정적파일 처리)등을 내용에 따라처리하고 반응하는 컴퓨터 프로그램 .. 더보기
[Pycharm 설정]Preference에서 Django설정 불가 이슈 최초 pycharm Preference 설정 시 가상환경 셋팅이 완료되었다면, 가장 먼저 interpreter 설정을 진행해야한다. 이때, 간혹 project의 root 디렉토리를 pycharm으로 정상연결 완료 했음에도, preference에서 Django셋팅을 할 수 있는 화면이 나오지 않는 경우가 있다, 즉 좌측 영역이 공백으로 노출되는 현상인데, 뭔가 셋팅을 잘못한줄 알고, 가상환경 생성 및 pycharm을 여러번 진행하며 많은 시간을 삽질하며 보냈다가 겨우 해결하여, 해결 내용을 포스팅 한다. (이미, 해결을 해버려서, preference에서 Django가 노출되지않는 화면을 미처 캡쳐하지 못했다....) [확인순서] 1) 가장 먼저, 가상환경의 위치가 프로젝트 root 디렉토리에 제대로 생성되.. 더보기
[Docker]Docker Compose 보통 간단한 서비스를 POC할때, docker container를 하나 만들어, 개발을 진행하곤 한다. 하지만, 여러개의 애플리케이션과 데이터베이스를 구성해서 사용해야할때, 각 애플리케이션과 데이터베이스는 서로 다른 환경과 종속성을 가지고 만들어져야할때가 있다. 이때, 만약 각 애플리케이션이 실행된 container를 별도로 관리하고 모니터링 해야한다면 매우 불편할 수 있을것이다. 이와 같이 복수의 docker container를 운영할때, 이를 동시에 실행, 관리 하기 위한 도구인 docker compose를 알아보려한다. Docker Compose란? Docker 기반의 multi container 애플리케이션을 "정의", "실행", "관리"하기 위한 도구이다. Docker Compose의 장점? 웹.. 더보기
[Linux] 환경변수 설정 어떤 프로그램이 돌아가게 해주는 실행파일의 경로를 잡아주는걸 환경변수 세팅이라고 하는데, 리눅스에는 매우 다양한 환경변수들이 있다. 지정된 환경변수를 출력하는 명령어는 printenv 이다. 1) printenv 환경변수들의 경로인 path를 출력하는 명령어는 echo $PATH 이다. path들은 전부 : (콜론)으로 구별되어 있다. 2) echo $PATH 위에서 알아야 할 것은, 리눅스에서 사용하는 명령어들도 결국 일종의 실행파일인데 명령어 입력 시 환경변수에 잡혀있는 PATH를 따라가서 해당 파일이 실행되는 원리로 명령어가 작동된다는 것이다. 즉, mkdir, ls 등의 명령어도 결국 저 path 경로에 저장되어 있다는 얘기이다. 이 점을 이용하면, 명령어들이 실행파일로 이뤄져있고, PATH는 그.. 더보기
[Pickle file dump error]OverflowError: cannot serialize a bytes object larger than 4 GiB 대용량의 torch data를 pickle file로 dump하려고할때, 4GB이상의 데이터에 대해 dump error가 발생했다. 해결방법 요때는 dump할때, 아래와 같이 "protocol" parameter를 추가해주면 된다. with open('/workspace/DBP/data_storage/wontae_kim/슈퍼북/dataset/taxsave_2000000_data.pkl', 'wb') as f: pkl.dump(last_data, f, protocol=4) 더보기
[ML]모델 학습 진행 시 "IndexError: Target 811 is out of bounds." Error "IndexError: Target 811 is out of bounds." 간단한 multi-layer perceptron 모델을 학습시키는 과정에서, 위 오류가 발생했다. 모델이 예측한 클래스 레이블이 실제 데이터셋의 클래스 레이블 범위를 벗어날 때 발생하는 오류이다. 예를 들어, 클래스 레이블이 0부터 9까지인데 모델이 10 이상의 값을 예측한 경우 발생할 수 있다. 가능한 원인으로는 다음과 같은 것들로 요약해볼 수 있다. 데이터셋의 클래스 레이블 개수(unique한 label개수)와 모델의 output_dim이 일치하지 않는 경우 데이터셋의 클래스 레이블 범위가 0부터 output_dim-1까지가 아닌 경우 학습 데이터에 레이블이 잘못 매핑된 경우 따라서, 데이터셋의 클래스 레이블 범위를 확인하고.. 더보기