분류 전체보기 24

[네트워크] 서버사이드 렌더링(SSR)과 클라이언트 사이드 렌더링(CSR)

1.  서버사이드 렌더링 (SSR) 웹 페이지의 HTML을 서버에서 생성하여 클라이언트(웹 브라우저)에 전송하는 방식.사용자가 웹 페이지에 접근할 때 서버는 요청된 페이지를 렌더링하고 클라이언트로 전송한다. 서버의 웹 페이지가 브라우저에 도착했을 때는 이미 완전히 렌더링이 된 상태이다. 만약 웹 페이지에 데이터베이스의 데이터가 필요한 경우, 서버에서 데이터를 처리하고 불러와서 동적인 웹 페이지로 변환하여 브라우저로 보낸다. 서버가 모든 요청마다 HTML을 생성해야 하므로 서버에 부하가 올 수 있다. 2.  클라이언트사이드 렌더링 (CSR) SSR과 반대로 CSR은 클라이언트에서 JavaScript를 실행하여 페이지를 렌더링한다. (React나 Angular, Vue.js 같은 프레임워크들이 CSR 방식을..

네트워크 2024.08.16

[DB] ORM(Object Relational Mapping) 이란?

1.  ORM (Object Relational Mapping)객체 - 관계를 매핑한다는 의미이다. 객체 지향 프로그래밍에서는 클래스를 사용하지만, 관계형 데이터베이스는 테이블을 사용한다. 이 때 모델의 불일치가 일어나는데 ORM을 통해 객체 지향 프로그래밍 언어에서 사용되는 객체와 관계형 데이터베이스의 테이블 간 매핑을 자동화 할 수 있다.  - SQL 쿼리를 직접 작성하지 않아도 데이터베이스 작업을 수행할 수 있다.- 객체 지향 언어에서의 클래스와 객체를 데이터베이스 테이블과 레코드에 대응시켜 매핑- 개발자는 객체를 통해 데이터베이스와 상호작용 이런 대표적인 ORM 프레임 워크로 Hibernate, JPA(Java Persistence API)등이 있다. 파이썬에서는 SQLAlchemy, Django..

DB 2024.08.16

[CI/CD] Github Actions로 CI/CD 파이프라인 구축하기 with Docker hub

환경 세팅1. Dockerfile에 아래 스크립트가 포함되어 있는지 확인 (COPY 명령어는 호스트 머신의 파일이나 디렉토리를 도커 이미지의 파일 시스템에 복사함. 이 명령어를 사용하여 애플리케이션 파일, 설정 파일, 기타 필요한 파일을 도커 이미지에 포함시킨다.)// 도커파일이 프로젝트 루트 디렉토리에 있다고 가정COPY ./build/libs/--SNAPSHOT.jar app.jar2. 깃허브에서 개발용 브랜치와 배포용 브랜치 나누기 (생략해도 됨)3. 도커 허브 회원가입4. EC2 인스턴스 ssh 접속   1. Github Actions 생성1. 깃허브에서 자신의 레포지토리의 Actions로 진입  2. workflow 작성하기 (Java with Gradle 을 선택하거나 set up a work..

CI,CD 2024.08.08

[CI/CD] SpringBoot 프로젝트 Docker+EC2 서버에 배포

CI/CD의 개념을 알게된 후 개인적으로 프로젝트를 진행하더라도 자동화 환경을 구축하는 것은 좋은 경험이 될 것 같아 CI/CD 파이프라인 구축을 해보려고 한다. 도커와 AWS EC2를 사용하여 진행하였다.2024.07.30 - [백엔드 TIL] - [Docker] 도커란? 도커파일(Docker File) 개념과 작성법2024.08.08 - [네트워크] - [AWS] EC2 인스턴스 생성하기 + ssh 접속개발 환경Mac OS (M2 pro)GradleSpringBoot 3.3.2DockerAWS EC2 1. SpringBoot 프로젝트를 도커 이미지로 만들기먼저, 프로젝트를 빌드하여 JAR파일을 만든다. JAR파일은 자바 애플리케이션, 라이브러리 파일을 배포하고 실행하는데 사용되는 압축파일이라고 보면 ..

CI,CD 2024.08.08

[AWS] EC2 인스턴스 생성하기 + ssh 접속

1. AWS EC2 인스턴스 생성소프트웨어 이미지(AMI)는 Amazon Linux 2, 인스턴스 유형은 t2.micro로 진행하였다. 프리티어 사용 예정이라면 자신이 선택할 유형이 지원되는지 확인하는게 좋다.  1. 아마존 로그인 후 콘솔에서 EC2 서비스에 진입한다.인스턴스 시작을 누르고 생성을 진행한다. - OS 이미지 : Amazon Linux2 2023 AMI- 인스턴스 유형 : t2.micro (프리티어 적용 가능)- 키 페어 : 기존의 키 페어를 사용하면 된다. 없다면 새 키 페어 생성을 누르고 생성해주자 유형은 pem 키, 다운로드 된 경로를 잘 기억해두자 매우 중요하다- 보안 그룹 : default를 선택해도 되지만 보안그룹은이 SSH 인바운드는 허용하고 있어야한다. 그래야 EC2 ins..

네트워크 2024.08.08

[CI/CD] CI, CD란? (Continuous Integration, Continuous Deployment)

1. CI (Continuous Integration)CI는 지속적인 통합을 의미한다. 예를 들어 개발자가 기능을 개발하거나 버그를 수정하고 발생한 코드의 변경을 main 레포에 push 또는 PR을 하는 것을 말한다. 이런 과정은 매우 빈번하기 때문에 개발 생산성을 향상시킬 필요가 있다. 따라서 우리는 CI 도구를 사용하여 코드 변경이 main 저장소에 푸시될 때마다 자동으로 빌드와 테스트가 실행되도록 설정할 수 있다. (CI/CD 툴로는 Jenkins, Gitlab, Travis CI, GIthub Actions 등이 있다.)  2. CD (Continuous Deployment )앞서 말한 변경사항을 프로덕션 환경에 실제 배포할 때 까지의 과정을 자동화하는 것이다.일일이 빌드와 테스트를 진행하고 배..

CI,CD 2024.08.08

[git] 깃허브 협업 Flow

깃허브를 통해 협업할 때 flow 정리 시작 전에 되짚어볼 용어들 1. fork (다른 사용자의 저장소를 복제하여 가져오기)2. upstream (원본 저장소, 내가 포크한 저장소)3. pull (원격 저장소의 변경 사항을 로컬 저장소로 가져와 병합)4. Pull Request (PR) (변경 사항을 원본 저장소에 병합해 달라고 요청하는 작업)5. **conflict (두 개 이상의 커밋이 동일한 파일의 동일한 부분을 변경하여 병합할 수 없을 때 발생하는 상황)6. merge (두 개 이상의 브랜치의 변경 사항을 하나로 통합)   첫 번째 단계- 팀장은 로컬에서 프로젝트의 기본 세팅을 마치고 자신의 레포에 올린다. or 팀원들과 협업할 새로운 공동 레포 생성한다.- 팀원들은 각자 레포를 fork 한다. ..

Github 2024.08.03

[git] 자주 사용하는 git 명령어 모음

git init새로운 Git 저장소를 초기화git clone 원격 저장소를 로컬로 복제git status현재 브랜치의 상태와 변경 사항을 확인git add 작업 디렉토리의 변경 사항을 스테이징 영역에 추가git commit -m "message"스테이징 영역의 변경 사항을 커밋git push로컬 커밋을 원격 저장소에 푸시git pull원격 저장소의 변경 사항을 로컬 저장소와 병합git fetch원격 저장소의 변경 사항을 가져오지만 병합하지는 않음git merge 다른 브랜치의 변경 사항을 현재 브랜치에 병합git branchoption : -b(생성) , -d (삭제)로컬 브랜치 목록을 표시하거나, 새로운 브랜치를 생성 또는 삭제git remote add 원격 저장소를 추가git rebase -i HE..

Github 2024.08.03

[git] 기존 레포에서 존재하지 않는 비어있는 branch 생성하기

더보기최근 스터디 중인 책의 내용을 기반으로, 친구와 함께 EC2 서버에 프로젝트를 배포하고 자동화하는 작업을 진행하게 되었다. 기존 브랜치는 개발을 위한 브랜치로 유지하고, 배포를 위한 새로운 브랜치를 생성하여 사용하기로 했다. master 브랜치를 새로 생성하려고 했지만 깃허브에서 브랜치를 새로 생성할 경우 기존의 소스를 반영하게 되어 빈 브랜치가 생성되지 않는 문제점을 아래 과정을 통해 해결하고 develop 브랜치와 master 브랜치로 나누었다. 해결 과정은 다음과 같다. 먼저, git checkout 명령어의 option을 활용하여(--orphan) branch를 새로 만들어준다.git checkout --orphan [생성할 branch 이름] 그리고 브랜치 안의 내용을 지워준다.git rm..

Github 2024.08.02

[Docker] 도커란? 도커파일(Docker File) 개념과 작성법

Docker도커란 소프트웨어를 컨테이너로 패키징하여 배포하고 실행하는 플랫폼이다.어플리케이션을 개발한 후 실행할 때 필요한 환경들을 패키징 하여 별 다른 설치 없이 한번에 실행시켜주도록 하는 것을 컨테이너화 한다고 한다. 이런 방식으로 우리는 애플리케이션을 배포할 때 발생하는 Environment Disparity(개발 환경이 맞지 않는 상태) 문제를 해결할 수 있다. 도커 사용 과정 요약Docker를 사용하면 개발 환경을 표준화하고 배포할 수 있습니다. 먼저, 개발 컴퓨터와 서버에 Docker를 설치합니다. 이후, 필요한 환경을 설정하는 Dockerfile을 작성하여, 소프트웨어와 라이브러리의 구성을 정의합니다. 이 Dockerfile을 기반으로 Docker 이미지를 생성한 후, 컨테이너를 실행하여 독..

백엔드 TIL 2024.07.30