You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
전체적인 백엔드 서버는 AWS EC2에 구축된 상황입니다. 해당 서버에는 언제나 완성되어서 안정화된 버전들만 올라갑니다.
이 안정화된 버전들은 깃허브 액션이 깃허브에서 메인 브랜치에 안정화된 버전이 풀리퀘스트를 통해서 들어올때 자동 배포해줍니다.
그 전까지는 . 팀원들이 협업하여 만들어진 결과물들은 develop 브랜치에 차곡차곡 커밋되어 쌓아집니다. 특정 버전 배포가 준비되었다고 판단시에.
main 브렌치에 pr을 날립니다. ( 버전관리 시스템은 git/github를 사용합니다.)
백엔드 서버는 스프링부트와 이를 기반으로하는 하위 프레임워크 기술들로 구성되어있습니다 ,
데이터베이스서버에 sql 쿼리를 날리고 이를 관리하는 ORM기술은 SPRING DATA JPA를 사용하고 있습니다.
데이터베이스 서버는 AWS RDS(mysql) / AWS S3(이미지 파일) 입니다.
협업툴은 이미지와 같이 노션,피그마.기타 툴들을 사용합니다.
기술 키워드들
스프링 부트와 하위 기술들로 구성된 백엔드 서버
스프링부트를 기반으로 저희가 사용하고 있는 하위기술들은 다음과 같습니다. 핵심기술들 위주로 요악하면
스프링 시큐리티 : 인증/인가 . 보안 처리
스프링 mvc : 컨트롤러 , 레포지토리, 서비스단의 구조로 나뉘어진 mvc 패턴2 적용을 위한 하위 프레임워크
스프링 DATA JPA : ORM 기술인 JPA을 템플릿화한 프레임워크로 데이터베이스단 접근 기술
이외에도 스프링의 하위기술은 아니여도 다양한 기술들을 적용하고 있습니다 .
JWT : 인증/인가를 관리하는 기술
OAUTH : 소셜로그인 관련 인증/인가 관리하는 기술
스웨거 : 프로젝트 구조를 파악하여 api를 자동생성해주는 기술
..etc
데이터베이스 접근 기술 _ ORM < Spring Data Jpa>
스프링과 데이터베이스를 이어주는 기술은 매우 다양합니다. 역사적으로 데이터베이스 기술은 다음과 같이 발전해왔습니다 .
JDBC
JDBC Template
MYbatis
JPA
Spring data JPA
Query dsl
우리 프로젝트에서는 객체를 객체답게 사용하자는 철학에 따라 개발된 JPA를 조금 템플릿화 시킨 SPRING DATA JPA를 사용합니다,
필요시에는 JPQL를 혼용하여서 사용합니다.
VCS ( 버전 컨트롤 시스템 ) _ GIT/GITHUB
VCS는 버전 컨트롤 시스템을 의미합니다. 대표적인 버전 관리 시스템인 GIT/GITHUB를 사용하여서 프로젝트의 전체 버전을 관리하고 있습니다.
CD 와 GITHUB ACTIONS
서버는 한번 배포되어서 끝나지 않습니다. 윈도우가 계속 업데이트 되듯이. 관리되는 서버라면 조금 더 나은 서비스를 제공하고자 하는 목적에 따라 지속적인 업데이트가 필요합니다. 하지만 매번 수동적으로 서버를 배포하는 일은 너무 번거롭습니다. 그래서 GIT HUB 에서는 깃허브 액션이라는 서비스를 통해서 , 특정 조건이 만족될시 서버를 자동배포(자동업데이트)해주는 기능을 제공해줍니다 .
우리 프로젝트에서는 메인 브런치에 새로운 코드들이 들어왔을때, (메인 브런치에는 유저들에게 제공해도 문제가 없는 완성된 코드들만을 넣기로 약속 했으므로) 이 시점을 트리거 삼아서 깃허브 액션이 코드를 자동 배포해줍니다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
전체적인 프로젝트 구조에 대한 이미지 첨부와 함께 간략한 설명을 첨부합니다.
기술 흐름에 대한 설명
전체적인 구조/흐름
main 브렌치에 pr을 날립니다. ( 버전관리 시스템은 git/github를 사용합니다.)
기술 키워드들
스프링 부트와 하위 기술들로 구성된 백엔드 서버
스프링부트를 기반으로 저희가 사용하고 있는 하위기술들은 다음과 같습니다. 핵심기술들 위주로 요악하면
이외에도 스프링의 하위기술은 아니여도 다양한 기술들을 적용하고 있습니다 .
데이터베이스 접근 기술 _ ORM < Spring Data Jpa>
스프링과 데이터베이스를 이어주는 기술은 매우 다양합니다. 역사적으로 데이터베이스 기술은 다음과 같이 발전해왔습니다 .
우리 프로젝트에서는 객체를 객체답게 사용하자는 철학에 따라 개발된 JPA를 조금 템플릿화 시킨 SPRING DATA JPA를 사용합니다,
필요시에는 JPQL를 혼용하여서 사용합니다.
VCS ( 버전 컨트롤 시스템 ) _ GIT/GITHUB
VCS는 버전 컨트롤 시스템을 의미합니다. 대표적인 버전 관리 시스템인 GIT/GITHUB를 사용하여서 프로젝트의 전체 버전을 관리하고 있습니다.
CD 와 GITHUB ACTIONS
서버는 한번 배포되어서 끝나지 않습니다. 윈도우가 계속 업데이트 되듯이. 관리되는 서버라면 조금 더 나은 서비스를 제공하고자 하는 목적에 따라 지속적인 업데이트가 필요합니다. 하지만 매번 수동적으로 서버를 배포하는 일은 너무 번거롭습니다. 그래서 GIT HUB 에서는 깃허브 액션이라는 서비스를 통해서 , 특정 조건이 만족될시 서버를 자동배포(자동업데이트)해주는 기능을 제공해줍니다 .
우리 프로젝트에서는 메인 브런치에 새로운 코드들이 들어왔을때, (메인 브런치에는 유저들에게 제공해도 문제가 없는 완성된 코드들만을 넣기로 약속 했으므로) 이 시점을 트리거 삼아서 깃허브 액션이 코드를 자동 배포해줍니다.
Beta Was this translation helpful? Give feedback.
All reactions