웹개발 35

Spring Boot - 기본값과 구성 규칙에 대한 Spring Boot의 고유한 접근 방식

Spring Boot의 **기본값(Default Values)**과 **구성 규칙(Configuration Rules)**에 대한 고유한 접근 방식은 **"설정보다 관례(Convention over Configuration)"**라는 철학에 기반하고 있어. 이 접근 방식은 개발자가 최소한의 설정으로도 애플리케이션을 빠르게 실행하고 동작시킬 수 있도록 돕는 것이 핵심이야.아래에서 Spring Boot의 기본값과 구성 규칙을 단계적으로 상세히 설명할게.1. Spring Boot의 기본값(Default Values)Spring Boot는 많은 기능에 대해 합리적인 기본값을 제공해.이 기본값은 대부분의 애플리케이션에서 공통적으로 사용될 만한 값으로 설정되어 있어, 개발자가 초기 설정에 많은 시간을 들이지 않아도..

Spring Boot - Spring Boot 소개 / 변천사에 대한 간단한 이해 / Spring Framework /

spring boot가 뭐야? 소개를 좀 해줄 수 있어? 개발자 공부를 이제 막 시작한 입문자라고 생각하고 대답을 해 Spring Boot는 자바(Java)로 웹 애플리케이션이나 백엔드 서버를 빠르고 쉽게 개발할 수 있도록 도와주는 프레임워크(framework)야.1. 프레임워크란?프레임워크는 "요리 레시피" 같은 거야. 만약 어떤 요리를 처음 만들어본다고 생각해 보자. 어디서부터 시작해야 할지 모르겠고, 잘못하면 요리가 엉망이 될 수 있지?프레임워크는 그런 과정을 쉽게 만들어주는 틀이야.Spring Boot는 자바로 개발을 시작할 때 필요한 기본적인 구조와 기능을 제공해줘.2. Spring Boot가 왜 만들어졌을까?원래는 Spring Framework라는 걸 많이 썼어.그런데 Spring Framew..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (6) - 사용자 피드백을 받아보고, 그리고 '프로젝트 설명서'를 끝으로 마무리

아내랑 일본어랑 영어를 할 줄 아는, 일본인 친구에게 사용해보라고 했다.그런데, 둘 다 chatGPT를 유료 버전으로 결제해서 사용하는 사람들이라 그런지, '구리다' 라는 평..ㅋㅋㅋㅋ하지만 아내는 IT 보안, 클라우드 보안 엔지니어를 준비 중인 사람이라 그런지, 이런 웹 페이지 하나 개발하고 배포하는 게 얼마나 어려운지, 이렇게 다른 사람이 접속해볼 수 있는게 얼마나 쉽지 않은지 알고 있다면서 고생했다고 말해줬다.나도 정리를 좀 하자면,덕분에 처음부터 끝까지 개발해보고 배포해보는 경험을 해본 것이 굉장히 의미있는 경험이라고 생각한다.AI의 도움을 받아서 개발과 배포를 했는데, AI가 없었으면 못 했을거라는 걸 인정은 한다. 하지만 AI가 없는 세상은 이제 오지 않을 것이다. 그러니까 AI를 잘 활용해서..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (4) - Nginx 설정 및 방화벽 설정 / Django static 파일 수집 / 502 에러 해결

AWS Lightsail 인스턴스 설정서버 업데이트 및 필수 패키지 설치Django 프로젝트 코드 클론Python 가상환경 설정 및 의존성 설치Django 프로젝트 설정Gunicorn 설정Systemd 서비스 파일 생성Nginx 설정방화벽 설정Django 정적 파일 수집7번까지 진행이 된 상황이다. 계속 가보자.처음에 GPT에게 질문했을 때에 8, 9, 10 단계에 대해 해주었던 답변은 이랬다. 8. Nginx 설정/etc/nginx/sites-available/ 파일을 생성하고 다음과 같이 설정합니다.server { listen 80; server_name your-lightsail-ip or your-domain.com; location / { proxy_pass http..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (3) - Python 가상환경 / Django 프로젝트 설정 / Gunicorn 설정 / Systemd 서비스 파일 생성

AWS Lightsail 인스턴스 설정서버 업데이트 및 필수 패키지 설치Django 프로젝트 코드 클론Python 가상환경 설정 및 의존성 설치Django 프로젝트 설정Gunicorn 설정Systemd 서비스 파일 생성Nginx 설정방화벽 설정Django 정적 파일 수집3번까지 진행이 된 상황이다. 계속 가보자.일단, python 가상환경 설정 및 의존성 설치를 해야 하는 이유를 공부하고 넘어가자. 가상환경을 설정하는 이유는 프로젝트마다 독립적인 환경을 제공하기 위해서입니다. 가상환경은 Python 패키지들이 시스템 전체와 충돌 없이 각 프로젝트에만 필요한 패키지들을 설치하고 관리할 수 있도록 돕습니다.가상환경 설정의 주요 이유:프로젝트 간 독립성 유지:각 프로젝트는 필요한 라이브러리와 버전이 다를 수 ..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (2) - 인스턴스 생성과 도메인 연결/ 코드 옮기기

도메인을 구입할 것이다. 회사를 다니면서 진행중인 프로젝트가 아니라 개인적으로 하고 있는 거니까 추가로 개인 돈이 조금(?) 발생한다. 엄청 무리되는 금액은 아닌데, 소비를 많이 하지 않는 성향을 가진 나에게는 쓰라린(?) 금액이다. 아픈 건 아니고, 쓰라린...ㅋㅋㅋㅋ아무튼, 도메인 구입을 할 것이다. 그런데, 내가 생각하기에 구입이라는 단어는, 완전히 나의 소유가 되는 것이라는 의미를 가지게 되는데, 완전 소유는 아니고 도메인을 1년간(또는 년단위의 원하는 기간)만 내 소유로 인정을 받는 구조다.아무튼, 가보자. 나는 도메인 주소를 뭔가 특별한 걸 찾는게 절대 아니다.그래서 도메인 주소는, aichatbot-wyfamily 이런 느낌으로, 누가봐도 내가 만든 프로젝트성 페이지라는 걸 알 수 있게 하려..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (1) - 구조를 짠 뒤, RDS 부터!

시작은 Django의 official documentation을 확인해보자. 개발자 입장에서 배포하는 건 deploy라고 함Django currently supports two interfaces: WSGI and ASGI.WSGI is the main Python standard for communicating between web servers and applications, but it only supports synchronous code.ASGI is the new, asynchronous-friendly standard that will allow your Django site to use asynchronous Python features, and asynchronous Django feat..

배포를 해보기 위해 클라우드와 서비스 배포 공부

배포에는 두 가지 관점이 있다고 한다. 로컬에서 사용하기 위한 배포 방식사용자에게 어떤 패키지를 전달해서 사용자가 그걸 설치해서 사용하는 방식의 배포예를 들어, CD로 스타크래프트 했던 건 CD를 통해 배포하는 것.앱스토어에서 앱을 다운받아서 로컬에서 사용하도록 앱파일을 배포하는 것.로컬에서 사용하지 않는 배포 방식서버, 사용자 단말기에서 서버에다가 요청해서 뭔가를 받아온다요즘 앱들의 대부분이 이렇게 운영된다, 인터넷에 접속하지 않는 앱은 없다고 봐야 한다.특히 우리가 집중하는 건, 웹은 거의 99.9%가 인터넷에 접속해서 서버에 뭔가를 요청해서 응답을 받아온다.그런 역할을 하는 게 서버라고 함. 서버를 세팅하는 걸 서버 배포, 클라이언트 앱을 배포하는 걸 클라이언트 배포라고 한다면은,기본적으로 클라우드..

Chatbot 응답을 AI(LLM)가 해주도록 API 연결하기(2) - API 실제로 연결

1. 일단 OpenAI API key 를 가지고 와야 한다.여러가지 AI/LLM API가 있겠지만, 나는 공부용으로 잠깐 사용할 것이니까 돈이 조금은 쓰이더라도 MSVScode에서 편하게 사용가능한 openAI를 사용할 것이다.이 key 라는게 있어야, API를 사용할 수 있다. 그리고 잘 지켜야 한다. 혹시나 이걸 누가 알게 되면, 내 key로 결제를 막 해버릴 수도 있으니까.너무 신기한건, 처음 key를 생성할 때에만 key를 보여주고 그 다음에는 보여주지 않는다는 것.2. OpenAI 라이브러리를 다운로드하자.MS VScode에pip install openai 를 하면 된다.그리고 나서 chatGPT가 알려주는대로 했다.utils.py 라는 파일을 새로 만들어서 코드를 넣었다.이번에는 gpt-3.5..

Chatbot 응답을 AI(LLM)가 해주도록 API 연결하기(1) - 연결하기 전에 API가 무엇인지 공부!

공학에서는 최적화(자원이 무한하지 않기 때문에), 복잡성 관리 (지능이 무한하지 않기 때문에)두 가지가 중요하다.그 중에서 복잡성 관리의 경우에는, 모듈화를 통해 해결할 수 있다.일상생활에서 예를 들어보면, 옷을 온 집안에 다 널부러놓는 것 보다는 옷장에만 옷을 넣어놓는다면 복잡하지가 않게 된다.옷장이라는 모듈화가 되는 것. 옷을 꺼내서 입고, 다시 옷장에 넣는 것. 기본적으로 역할을 구분해야 한다. 역할 단위를 모듈이라고 보면 된다.역할을 구분하는 것에서 멈추지 않고, 서로의 역할이 어떻게 작동하는지는 몰라도 된다.예를 들어서, 월급을 받는 직장인들은 월급이 들어오는 금액과 일시만 알면 되는것이지 어떻게 해서 그 금액이 산출되었고 어떤 과정을 통해서 내 통장으로 월급이 들어오는지는 굳이 몰라도 된다. ..