Back-End
-
자신에게 할당받거나 또는 자신이 운영 중인 서버가 있는데, 이를 원격으로 접속하여 jupyter 환경을 이용하고 싶을 때 유용할 수 있다. 인터넷 환경이 갖춰진 곳에서 웹 브라우저만 있어도 본인이 알고 있는 비밀번호를 이용하면 서버의 jupyter를 이용할 수 있는 것. 이 글에서는 네이버 부스트캠프 AI Tech 활동에서 제공한 AI Stages의 서버를 이용하지만, AWS EC2, GCP 등 여러 클라우드 플랫폼의 서버에도 같은 방법으로 적용할 수 있다. 설정 과정 우선 서버에 터미널을 이용하여 ssh로 접속한다. which jupyter로 jupyter가 설치되어 있는지 확인하고, 설치되지 않았으면 pip install jupyter로 이를 설치한다. 이왕 설치하는 김에 뒤에서 필요할 Jupyter..
원격 서버에서 Jupyter Notebook 또는 Jupyter Lab을 실행하여 접속하기자신에게 할당받거나 또는 자신이 운영 중인 서버가 있는데, 이를 원격으로 접속하여 jupyter 환경을 이용하고 싶을 때 유용할 수 있다. 인터넷 환경이 갖춰진 곳에서 웹 브라우저만 있어도 본인이 알고 있는 비밀번호를 이용하면 서버의 jupyter를 이용할 수 있는 것. 이 글에서는 네이버 부스트캠프 AI Tech 활동에서 제공한 AI Stages의 서버를 이용하지만, AWS EC2, GCP 등 여러 클라우드 플랫폼의 서버에도 같은 방법으로 적용할 수 있다. 설정 과정 우선 서버에 터미널을 이용하여 ssh로 접속한다. which jupyter로 jupyter가 설치되어 있는지 확인하고, 설치되지 않았으면 pip install jupyter로 이를 설치한다. 이왕 설치하는 김에 뒤에서 필요할 Jupyter..
2022.10.08 -
들어가기 전에 우리는 대개 컴퓨터를 주로 사용할 때 마우스를 움직여서 어떠한 그래픽 요소을 다루는 GUI(Graphic User Interface)에 익숙한 경우가 많다. 그러나 처음으로 Linux 또는 Unix를 접할 때 그동안 생전 보지 못했던 CLI(Command Line Interface)를 만날 수 있다. 막상 첫 CLI를 다룰 때는 어색할 수 있어도 기본적인 명령어를 익히고 Linux 환경에서 프로그램이나 시스템을 다룰수록 CLI의 편리함과 매력을 느끼게 될 것이다. 이번 글에서는 Linux에 관한 간단한 소개와 기본적인 명령어를 소개하고, 각각의 명령어가 구체적으로 어떠한 역할을 하는지 예시를 통해 다뤄볼 것이다. Linux Linux를 왜 알아야 할까? Linux는 서버에서 일반적으로 흔히..
Linux(리눅스) Shell Command(쉘 명령어)들어가기 전에 우리는 대개 컴퓨터를 주로 사용할 때 마우스를 움직여서 어떠한 그래픽 요소을 다루는 GUI(Graphic User Interface)에 익숙한 경우가 많다. 그러나 처음으로 Linux 또는 Unix를 접할 때 그동안 생전 보지 못했던 CLI(Command Line Interface)를 만날 수 있다. 막상 첫 CLI를 다룰 때는 어색할 수 있어도 기본적인 명령어를 익히고 Linux 환경에서 프로그램이나 시스템을 다룰수록 CLI의 편리함과 매력을 느끼게 될 것이다. 이번 글에서는 Linux에 관한 간단한 소개와 기본적인 명령어를 소개하고, 각각의 명령어가 구체적으로 어떠한 역할을 하는지 예시를 통해 다뤄볼 것이다. Linux Linux를 왜 알아야 할까? Linux는 서버에서 일반적으로 흔히..
2022.10.06 -
Visual Programming으로 AI 모델링이 가능한 웹 어플리케이션을 개발하며 지난 7~8월 여름방학에 고려대학교 정보대학 HVCL 연구소에서 학부 인턴으로 근무하면서 어떠한 일을 진행했는지를 개발 후기를 남기는 게 좋을 것 같아서 글을 쓰려고 한다. 그동안 팀 프로젝트 단위로 개발을 해 본 경험이 있지만, 대학원 연구실에서 근무하는 것은 처음이었고 게다가 개인적으로 의학 분야는 처음 접해서 많이 애를 먹었다. 하지만 막상 두 달의 근무 기간이 끝나고 회고해보면 적지 않은 성장을 이룬 것 같아서 보람찬 마음이 크고, 앞으로 Backend와 AI Engineering이라는 나의 궁극적인 목표에 한 발자국 다가갈 수 있는 초석을 다졌다고 생각한다. 두 달이라는 짧은 시간동안 AI 모델링과 웹 어플리케..
Visual Programming으로 AI 모델링이 가능한 웹 어플리케이션 개발 후기Visual Programming으로 AI 모델링이 가능한 웹 어플리케이션을 개발하며 지난 7~8월 여름방학에 고려대학교 정보대학 HVCL 연구소에서 학부 인턴으로 근무하면서 어떠한 일을 진행했는지를 개발 후기를 남기는 게 좋을 것 같아서 글을 쓰려고 한다. 그동안 팀 프로젝트 단위로 개발을 해 본 경험이 있지만, 대학원 연구실에서 근무하는 것은 처음이었고 게다가 개인적으로 의학 분야는 처음 접해서 많이 애를 먹었다. 하지만 막상 두 달의 근무 기간이 끝나고 회고해보면 적지 않은 성장을 이룬 것 같아서 보람찬 마음이 크고, 앞으로 Backend와 AI Engineering이라는 나의 궁극적인 목표에 한 발자국 다가갈 수 있는 초석을 다졌다고 생각한다. 두 달이라는 짧은 시간동안 AI 모델링과 웹 어플리케..
2022.09.01 -
Google Cloud Platform VM 인스턴스 생성하기 RECJOON 웹 서비스를 구축하는 과정에서 웹 서버와 함께 딥 러닝 모델을 주기마다 실행하는 클라우드 컴퓨팅 서버가 별도로 필요했는데, GCP(Google Cloud Platform) VM 인스턴스를 생성해서 무료로 받은 크레딧을 모두 소진할 때까지 운영하기로 결정했다. 그리고 생성한 인스턴스에서 python으로 작성된 데이터 수집 코드와 딥 러닝 모델을 정해진 batch 간격마다 자동으로 실행하고자 Airflow를 설치했다. 그런데 생각보다 Airflow를 GCP 인스턴스에 설치하는 과정이 쉽지 않아서 적지 않은 시행착오를 겪었다. 다음에도 클라우드 컴퓨팅 서버에 Airflow를 설치할 수도 있으므로 GCP 인스턴스를 생성하고 Airflo..
GCP(Google Cloud Platform) VM 인스턴스 생성하기Google Cloud Platform VM 인스턴스 생성하기 RECJOON 웹 서비스를 구축하는 과정에서 웹 서버와 함께 딥 러닝 모델을 주기마다 실행하는 클라우드 컴퓨팅 서버가 별도로 필요했는데, GCP(Google Cloud Platform) VM 인스턴스를 생성해서 무료로 받은 크레딧을 모두 소진할 때까지 운영하기로 결정했다. 그리고 생성한 인스턴스에서 python으로 작성된 데이터 수집 코드와 딥 러닝 모델을 정해진 batch 간격마다 자동으로 실행하고자 Airflow를 설치했다. 그런데 생각보다 Airflow를 GCP 인스턴스에 설치하는 과정이 쉽지 않아서 적지 않은 시행착오를 겪었다. 다음에도 클라우드 컴퓨팅 서버에 Airflow를 설치할 수도 있으므로 GCP 인스턴스를 생성하고 Airflo..
2022.07.19 -
AWS CodeDeploy 배포 과정에서 사전에 정의한 환경변수 사용하기 AWS CodeDeploy에서는 코드를 배포할 때 ~/.bashrc에서 정의한 환경변수를 쓸 수 없다. 그래서 배포 시 로컬에서 기대한 것과 달리 오류가 발생할 수 있다. 필자는 DB 연결을 환경변수로 정의했는데, AWS EC2에서 vi ~/.bashrc로 정의한 환경변수를 CodeDeploy 배포 과정에서 사용할 수 없어 DB 연결이 제대로 되지 않는 현상이 발생했다. etc/.profile.d/codedeploy.sh에 등록한다? etc/.profile.d/codedeploy.sh에 환경변수를 등록하면 된다는 글이 종종 보이는데, 예전 방법인 건지 적용이 안 된다. AWS Parameter Store 그래서 AWS Paramet..
AWS CodeDeploy로 배포할 때 환경변수 사용하는 방법, Parameter StoreAWS CodeDeploy 배포 과정에서 사전에 정의한 환경변수 사용하기 AWS CodeDeploy에서는 코드를 배포할 때 ~/.bashrc에서 정의한 환경변수를 쓸 수 없다. 그래서 배포 시 로컬에서 기대한 것과 달리 오류가 발생할 수 있다. 필자는 DB 연결을 환경변수로 정의했는데, AWS EC2에서 vi ~/.bashrc로 정의한 환경변수를 CodeDeploy 배포 과정에서 사용할 수 없어 DB 연결이 제대로 되지 않는 현상이 발생했다. etc/.profile.d/codedeploy.sh에 등록한다? etc/.profile.d/codedeploy.sh에 환경변수를 등록하면 된다는 글이 종종 보이는데, 예전 방법인 건지 적용이 안 된다. AWS Parameter Store 그래서 AWS Paramet..
2022.06.16 -
TypeORM에서 Entity를 읽어오지 못하는 현상 발생 시 해결 방안 TypeORM은 RDS(관계형 데이터베이스)의 데이터를 객체와 매핑(mapping)시켜서 데이터를 객체지향적으로 정의하고 관리할 수 있도록 하는 라이브러리이다. 개인적으로 Node.js로 RDS의 스키마를 정의해서 연결할 때 자주 사용한다. 그런데 정의한 Entity를 TypeORM으로 DB와 연결할 때 다음과 같은 문제가 발생할 수 있다. { "name": "RepositoryNotFoundError", "message": "No repository for [Entity명] was found. Looks like this entity is not registered in current 'default' connection?" } ..
[RepositoryNotFoundError] TypeORM에서 Entity를 찾지 못하는 문제 해결 방법TypeORM에서 Entity를 읽어오지 못하는 현상 발생 시 해결 방안 TypeORM은 RDS(관계형 데이터베이스)의 데이터를 객체와 매핑(mapping)시켜서 데이터를 객체지향적으로 정의하고 관리할 수 있도록 하는 라이브러리이다. 개인적으로 Node.js로 RDS의 스키마를 정의해서 연결할 때 자주 사용한다. 그런데 정의한 Entity를 TypeORM으로 DB와 연결할 때 다음과 같은 문제가 발생할 수 있다. { "name": "RepositoryNotFoundError", "message": "No repository for [Entity명] was found. Looks like this entity is not registered in current 'default' connection?" } ..
2022.06.16 -
PHP로 구현된 Rhymix에서 이메일을 보내는 방법은 다양하다. 추천하지는 않지만 PHP의 mail() 함수도 있고, Woorimail(https://woorimail.com) 같이 정해진 할당량 내에서는 무료인 외부 api를 사용하는 방법도 있다. Rhymix에서는 이를 기본적으로 관리자 화면 시스템 설정에서 제공해주는데, 시스템 설정 → 알림 설정 → 이메일 항목에서 '발송 방법'에서 원하는 이메일 발송 방식을 선택할 수 있다. 이처럼 시스템 설정에서 정한 이메일 발송 방식을 개발 중인 애드온 또는 모듈에서도 사용하고 싶은 경우, 아래 짧은 코드를 사용하면 해결된다. $oMail = new \Rhymix\Framework\Mail(); $oMail->setSubject($subject); // 발송..
Rhymix 개발에서 자주 사용하는 이메일 발송 함수PHP로 구현된 Rhymix에서 이메일을 보내는 방법은 다양하다. 추천하지는 않지만 PHP의 mail() 함수도 있고, Woorimail(https://woorimail.com) 같이 정해진 할당량 내에서는 무료인 외부 api를 사용하는 방법도 있다. Rhymix에서는 이를 기본적으로 관리자 화면 시스템 설정에서 제공해주는데, 시스템 설정 → 알림 설정 → 이메일 항목에서 '발송 방법'에서 원하는 이메일 발송 방식을 선택할 수 있다. 이처럼 시스템 설정에서 정한 이메일 발송 방식을 개발 중인 애드온 또는 모듈에서도 사용하고 싶은 경우, 아래 짧은 코드를 사용하면 해결된다. $oMail = new \Rhymix\Framework\Mail(); $oMail->setSubject($subject); // 발송..
2021.02.08 -
2018년 여름방학에 인터넷 상에서 AI 챗봇 열풍이 불었다. 지금은 워낙 챗봇을 비즈니스의 용도로 운영하는 웹 사이트가 많이 있고 카카오톡 등 다양한 플랫폼에서 일반인들도 챗봇을 제작할 수 있는 환경을 제공하지만, 당시에는 AI를 통한 챗봇이 지금처럼 대중화되지는 않았다. 당시에 Rhymix 기반의 학교 웹 사이트를 운영해왔었고 언어 처리에 관심이 있어서 이번 기회에 챗봇 모듈을 제작하기로 결심했었다. 그 웹 사이트에서는 학교에 지원하고자 하는 학생들의 질문을 받는 게시판이 있었는데, 꽤 많은 학생들이 질문을 올리다 보니 같은 내용의 질문들이 서로 중복되거나 유사한 내용의 질문들이 올라와서 관리하는 교사와 학생들이 다소 힘들어했던 기억이 있다. 그래서 아예 챗봇을 제작하여 비슷한 분류의 성격을 띠는 질..
Rhymix Chatbot(라이믹스 챗봇) 모듈 제작 후기2018년 여름방학에 인터넷 상에서 AI 챗봇 열풍이 불었다. 지금은 워낙 챗봇을 비즈니스의 용도로 운영하는 웹 사이트가 많이 있고 카카오톡 등 다양한 플랫폼에서 일반인들도 챗봇을 제작할 수 있는 환경을 제공하지만, 당시에는 AI를 통한 챗봇이 지금처럼 대중화되지는 않았다. 당시에 Rhymix 기반의 학교 웹 사이트를 운영해왔었고 언어 처리에 관심이 있어서 이번 기회에 챗봇 모듈을 제작하기로 결심했었다. 그 웹 사이트에서는 학교에 지원하고자 하는 학생들의 질문을 받는 게시판이 있었는데, 꽤 많은 학생들이 질문을 올리다 보니 같은 내용의 질문들이 서로 중복되거나 유사한 내용의 질문들이 올라와서 관리하는 교사와 학생들이 다소 힘들어했던 기억이 있다. 그래서 아예 챗봇을 제작하여 비슷한 분류의 성격을 띠는 질..
2021.01.28