# 문제점 Github Flow를 브랜치 전략으로 선택했기 때문에 CI에 대한 구성이 필요했고 현재 상황에서 가장 효율적인 자동화 전략이 무엇인지 고민하게 되었습니다. # 해결방안 Github Actions Github Actions은 Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 도구입니다. 간단하게 말...
# 문제점 여러 개발자가 협업을 통해 하나의 서버를 구현하기 위해선 코드 버전관리에 대한 규약을 정할 필요해 이를 정해볼 필요가 있었습니다. # 해결 방안 1. Git Flow git flow는 feature, develop, release, hotfix, master 5가지의 브랜치로 나눠 각 브랜치에 목적에 맞게끔 버전관리를 하는 전...
# 문제점 만약 프로젝트를 제작하면서 개인 로컬 환경에서 모든 플랫폼을 직접 설치해 코드 작성 및 테스트를 진행하고 문제가 없어 외부 서버에 배포를 한다고 가정했을 때, 배포 환경과 개발 환경의 차이로 인해 발생할 수 있는 문제점은 개발 환경에서 제어할 수 없고 예측하기 힘들 것입니다. 이러한 문제를 해결하기 위해서는 어플리케이션 구성을 위한 여러...
# 문제점 쿠키 / 세션 인증 방식을 통해 로그인 기능을 구현하는 경우 세션이 처리할 요청은 읽기보단 쓰기에 대한 요청이 많을 것으로 예상할 수 있습니다. 하지만 트래픽이 증가해 로그인 요청에 대해서도 많은 사용자로부터 생성된다면 상대적으로 하나의 요청 처리 시간이 많이 소비되는 쓰기 요청을 보다 빠르게 처리하기 위한 방법을 구상해야 하는 요구사항...
# 문제점 현재 프로젝트로 구현한 어플리케이션이 실제 배포가 되어 서비스를 제공할 경우, 이용자의 수가 늘어남에 따라 처리해야 할 트래픽의 수는 증가합니다. 이때 하나의 서버가 감당하기 힘들만큼의 트래픽을 처리해야 할 정도로 이용자 수가 증가했다면, 서버는 이를 버티지 못하고 다운되어 서비스 장애가 발생할 수 있는 위험이 있습니다. 이를 예방하기...
Spring이란? 스프링이란 자바 기반의 웹 어플리케이션을 구현하기 위해 필요한 기술들을 지원하는 프레임워크이다. 그리고 스프링부트는 스프링 내에서 개발자가 프로젝트의 성격에 맞게 구성해야 할 부분을 자동화해주면서 편리함을 제공하는 서비스라고 할 수 있다. 스프링 : 프레임워크, 구조물의 개념 스프링부트 : 구조물을 구축하는데 필요한 재료...
객체지향의 4대 특성은 객체지향이 개발자에게 줄 수 있는 장점이라면 SOLID 원칙은 이러한 강점을 최대한 살리기 위해 지켜야할 원칙을 제시한 개념이다. 1. SRP, 단일 책임 원칙 → 추상화 “어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이여야 한다.” - 로버트 C. 마틴 하나의 클래스는 하나의 책임만 가진다. 이 책...
해당 글은 김종민님의 스프링 입문을 위한 자바 객체 지향의 원리와 이해의 내용을 정리한 글입니다. 1. 추상화 → 모델링 → class 추상화는 현실의 존재하는 사물이나 객체들의 공통적인 특성을 추출해 묶는 것을 의미합니다. 그리고 자바에서 추상화는 클래스를 통해 이뤄집니다. 즉, 클래스라는 것은 객체들의 공통적인 특성을 어플리케이션의 목적...
JVM 내에서 하나의 쓰레드가 생성되면 각각의 쓰레드는 고유의 Stack, Pc register, Native Method Area를 가진다. 대신 Heap 과 Method 영역은 하나의 공간을 공유하는 구조로 설계되어 있다. 이에 따라 다중 쓰레드에 접근 가능한 변수가 있고 그렇지 않는 변수가 존재해서 이를 제어해줄 필요성이 나뉘어진다. 지역변수...
super 예약어는 부모 객체를 가르킨다고 하는데 JVM의 메모리 영역에서 상속 클래스가 할당되는 과정을 보면서 알아가 보자. 출처 : https://velog.io/@cham/백기선님자바스터디-6주차-상속 위 그림을 보면 자식클래스 객체(Iphone)가 생성되면서 이에 관련된 데이터는 Heap 영역에 저장되고 참조변수(iphone)는 Stack...
A new version of content is available.