Intro사정이 있어 며칠만에 돌아와 글을 작성합니다. 지금까지 Spring Boot 기반으로 프로젝트 환경과 폴더 구조를 정리해왔습니다.이제 본격적으로 간단한 CRUD 기능을 구현해보려 합니다.그 전에, 제가 진행 중인 NoteAnywhere 프로젝트의 전반적인 구조를 간략히 소개드리겠습니다.본격적인 코드 작성 전에 전체 흐름을 이해하는 데 도움이 될 것입니다. ERD사용자는 여러 개의 문서를 작성할 수 있고, 문서에는 여러 개의 댓글이 달릴 수 있는 구조입니다.아래는 이를 시각화한 ERD입니다.REST API 명세API 명세는 Notion을 통해 관리하고 있습니다. 아래 링크를 참고해주세요.https://imyeachan.notion.site/noteanywhere-api-docs API 명세서 | ..
Intro이전 글에서는 Spring Boot에서 사용되는 MVC 패턴의 구조와 요청 처리 흐름에 대해 살펴보았습니다.이번 글에서는 그 흐름을 실제로 구현하기 위해 Spring Boot 프로젝트 내에서 어떻게 폴더를 구성하고각 폴더가 어떤 역할을 가지는지 정리해 보려 합니다Spring Boot 프로젝트를 설계하는 데 있어 기본적인 폴더 구조와 책임 분리는 매우 중요한 부분입니다. 기본 폴더 구조우선 필자의 프로젝트에서 사용할 폴더 구조는 아래와 같습니다. 이 구조는 Spring Boot 기반의 대부분의 프로젝트에서도 자주 사용되는 형태이며,크게 다음과 같은 네 개의 계층으로 나눌 수 있습니다. 각 폴더의 역할controller/HTTP 요청을 받아 처리하는 클래스들이 위치합니다.사용자의 요청을 받아 어떤 ..
IntroPython의 Django가 MTV(Model-Template-View) 패턴을 따르듯Java 기반의 Spring Boot는 MVC(Model-View-Controller) 패턴을 따릅니다. 이전 글에서는 프로젝트 초기 세팅과 서버 첫 실행까지 다뤘습니다.이번에는 본격적인 기능 구현에 앞서 Spring Boot의 핵심 구조인 MVC 패턴이 무엇인지, 어떤 원리로 동작하는지 가볍게 짚고 넘어가겠습니다. MVC 패턴이란?MVC는 Model–View–Controller의 약자로 애플리케이션을 세 가지 책임으로 분리해 구조화하는 디자인 패턴입니다.Model: 데이터와 비즈니스 로직을 담당합니다.예: DB 테이블과 매핑되는 @Entity, Repository, 서비스 로직 등View: 사용자에게 보여지는..
Intro지금까지는 막연히 "파이썬만 잘하면 취업할 수 있겠지" 라는 생각을 가지고 있었습니다.하지만 취업 시장을 마주하고 보니, 현실은 그리 녹록지 않더군요. 허허.그래도 Django, Express, FastAPI 등 다양한 웹 프레임워크를 다뤄본 경험이 있기에 Spring Boot도 금방 익숙해질 수 있으리라 생각합니다.이 글을 시작으로 Spring Boot의 기본적인 사용법을 익히고, 동시에 작은 프로젝트를 하나 만들어보려 합니다.저는 단순히 기능 구현에 그치지 않고 기술 하나하나를 선택할 때 왜 사용하는지 어떤 대안이 있는지를 항상 고민하며 학습하고자 합니다.단순한 기능 구현은 이제 중학생도 할 수 있습니다.기술자의 입장에서는 어떤 선택에도 책임과 확신이 필요하다고 생각합니다.그런 마음가짐으로 ..
💡 JavaScript를 공부하며 중요하다 생각되는 부분만 정리하는 노트입니다. let과 var (보통 let 사용) var은 중복 선언 가능 하지만 let은 중복 선언 불가 const도 중복 선언 불가(read-only) 템플릿 리터럴? let name = 'yeachan'; let name2 = `name is ${name}` //-< 이거 유용함 기억 비교 연산자 ==과 === ==은 값만 ===은 자료형까지 비 함수 표현식과 함수 선언식의 차이 함수 선언식은 호이스팅을 통해 최상단으로 올려져 실행된다. 함수 표현식은 화살표 함수로도 표현 가 // 함수 표현식 let helloA = function(){ return "집가고싶다.."; } // 위 함수 표현식을 화살표 함수로 사 let helloA..
1. github에 장고 파일 올리기 가상환경 파일은 같이 push하지 말 것! settings.py에 secretkey와 database내용을 숨기거나 repository를 privite로 변경 2. aws회원가입 3. EC2 만들기 우측 상단 나라를 서울로 변경 ec2검색 인스턴트 시작 클릭! 이름 설정 애플리케이션 및 OS 이미지 - Ubuntu / 22.04(프리 티어 사용 가능) 인스턴스 유형 - t2.micro(프리 티어 사용 가능) 키페어 생성 - 이름 설정 / RSA / .pem(Windows의 경우 .ppk 사용) --> 반드시 기억할 수 있는 곳에 저장해두어야 함. 네트워크 설정 - 인터넷에서 HTTPs 트래픽 허용 체크, 인터넷에서 HTTP 트래픽 허용 체크 시작 클릭 보안그룹 클릭!..
웹은 URL, HTTP, HTML로 구성한다. URL - 정보자원의 위치 정보 HTTP - 통신방법 - 1.GET ( 갖다줘! ) 2. POST ( 처리해줘! ) 등 HTML - 보여주고 연결해주고 ( 연결은 태그 ! ) => 서버 - URL, HTML을 미리 준비하여 HTTP 요청이 들어오면 응답해 주는 녀석 장고는 디자인 패턴으로 MTV 패턴을 가진다. M(Model) - 데이터베이스와 상호작용하는 부분 T(Template) - 사용자들 눈에 보이는 부분 V(View) - 내부 동작의 논리를 담당하는 부분
사전지식1 - 파이썬 기본 지식 파이썬을 기본적으로 다룰 줄 안다면 좋다. 그 중 딕셔너리, 예외 처리, 객체와 클래스, 모듈 패키지 라이브러리에 대한 내용을 알고 장고를 공부하는 것이 좋다. 1. 딕셔너리 - 대응 관계를 나타내는 자료형 - 나중에 python 파일의 데이터를 html 파일로 넘길 때 사용하기도 함 -> key값과 이에 대응하는 value값을 가짐-기본 형태 - val = {key1:value, key2:value2, ... } 딕셔너리의 사용법은 알아서 찾아봐라 -> https://wikidocs.net/16 여기 잘 나와있네 2. 예외처리 - 프로그램을 멈춤 없이 실행 -> 파이썬 오류를 다루는 기능 -기본 형태 - try: ... except 발생 오류: # 발생 오류를 안쓰면 어..
Django(장고)? 파이썬으로 만들어진 웹 프레임워크 웹 프레임워크? 웹 프로그램밍을 도와줄 라이브러리들의 집합 라이브러리? 각 기능을 실행시킬 함수들 예) 로그인/로그아웃 함수 Django의 장점? 1. Ridiculously fast. - '개발'이 말도안되게 빠름 2. Reassuringly secure. - 보안이 좋은 3. Exceedingly scalable. - 확장성이 좋음 출처(http://www.djangoproject.com/) Django의 단점? 1. '실행'속도가 느리다 - Python으로 만들어져 단점을 그대로 가져옴 Django의 특징? M.T.V (Model Template View)패턴을 가짐 1. Model (모델) - 모델링을 통해 만들어짐, 데이터를 다룸, (추상적..