분류 전체보기(67)
-
작업 일지#11 배포준비
프로젝트의 완성도는 아직 많이 부족하지만, 우선은 배포를 진행 해보기로 했다. 부족한 부분은 배포를 한 후에도 계속 적용이 가능하고, 오히려 완성이 덜된 상태에서 배포를 하고, 수정을 하는 과정에서 CI/CD를 구축하고 통합 및 배포의 자동화가 제대로 적용되는지 확인할 수 있는 요소가 될 수 있으니, 우선은 배포 환경을 구성하는 쪽으로 진행해볼까 한다. 따라서, 현 시점에서는 도메인 서비스 구현을 멈추고, 대략적으로 마무리를 하고자 한다. 먼저 마무리 되어야하는 부분은 예외처리를 에러 메세지로 연결하는 작업일 듯 하다. SpringMVC에서는 기본적으로 예외가 발생하면, 자동으로 메세지를 처리해준다. 이 기능만 놓고보면, 개발자는 그냥 맘편히 비즈니스 로직을 짜며, 예외처리를 하기만 하면, 다 될 듯 하..
2022.02.10 -
CI/CD에 대해 알아보자
CI (continuous integration) 소프트웨어가 항상 신뢰할 수 있는 레벨(테스트 통과 + 무난한 빌드)을 유지한 상태로 배포될 준비를 하자는 개념 CI process 코드 통합 동작 테스트 빌드 테스트 버그 발생 시 기록 CD(continuous deployment) 흔히, CD를 '무중단 배포'라고 한다. '무중단'이라는 단어 때문에 자칫 잘못하면, CD를 downtime이 없는 배포로 생각할 수도 있다(사실 이글을 쓴 내가 그렇게 받아 들였었다.). 하지만, CD의 Continuous는 '무중단' 보다는 '연속적인'의 의미로 받아들이는 것이 더 정확할 것 같다. 좀더 설명을 해보자면, 일반적으로 배포를 하기 위해, 다양한 환경을..
2022.02.06 -
싱글톤 패턴 -0- 정의와 구현법
싱글톤은 디자인 패턴의 하나로, 공유자원을 여러 객체가 사용해야 하는 경우에 활용된다. 싱글톤이라는 것은 하나의 개념으로, 프로그래밍의 언어에 상관없이 구현이 가능하다. 이번 게시글에서는 Java를 기준으로 설명을 해보겠다. Singleton pattern - Wikipedia In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one "single" instance. This is useful when exactly one object is needed to coordinate actions across the system. The te..
2022.01.28 -
모니터
모니터란? mutual exclusion을 보장하고, 조건에 따라 스레드를 wait 상태로 전환하게 해주는 하나의 동기화 기법이다. 모니터는 어떨 때 사용할 수 있을까? 모니터는 한 번에 하나의 스레드가 실행되어야 하며, 여러 스레드간의 협력이 필요할 때, 활용될 수 있다. 모니터의 구성요소 mutex 임계 영역에서 상호 배제(mutual exclusion)을 보장하는 장치 (자세한 내용은 [저번 게시글](https://postwithmemory.tistory.com/22?category=1067725)을 참고하라.) 따라서 임계영역에 진입하려면, mutex lock을 취득해야 한다. 여기서 락을 획득하지 못한 스레드는 일종의 큐에 들어가 대기(waiting) 상태로 전환한다. 이후에, 락을 가진 스레드..
2022.01.26 -
작업 일지#10 작업 방향 계획 변경
한 동안 작업일지를 작성하지 못했다. 기존 팀원이 이탈하고, 이제 혼자서 프로젝트를 마무리하는 상황이 생겨, 일정에 차질이 생겼기 때문이다. 우선은 팀원이 구현하지 못한 부분인 주문, 장바구니 도메인을 구현을 내가 맡아서 해야하는 것도 있지만, 정해진 일정 내에 마무리를 하기 위해선, 우선 프로젝트를 축소 시켜야할 필요가 있어 보인다. 축소를 한 방향은 다음과 같다. 서비스의 성격이 달라도, 구현하는 방향이 같다면, 우선 보류한다. 예를 들자면, 일반 사용자의 상품 검색 및 주문, 관리자의 상품 검색 및 재고 관리를 비교해보면, 서로 서비스의 성격이 다르지만, 결국 두 기능 모두, 상품을 검색하고, 상품의 재고를 확인하는 작업을 거친다. 이 경우에는 구현을 하면서 좀 더 고민을 많이 할 것 같은 '..
2022.01.26 -
CAP 이론에 대해 알아보자
브루어(Brewer)의 이론 이라고도 하는데, 세 가지 조건을 모두 만족하는 분산 컴퓨터 시스템이 존재하지 않음을 증명한 이론이다. 여기서 세가지의 조건은 다음과 같다. 일관성(Consistency) 데이터를 저장하려고 하는 노드가 몇대가 되든, 모든 노드에서 동일한 저장되어야 한다는 의미의 속성이다. (관계형 데이터베이스의 ACID 속성의 C 역시 거의 동일한 의미를 가졌다.) 가용성(Availablilty) 모든 요청이 성공 혹은 실패 응답을 반환하여야 한다. 즉, 서버가 살아있다면, 클라이언트의 요청을 무조건 응답해야한다는 뜻이다. 분할 내구성(Partition tolerance) 메시지 전달이 실패하거나, 시스템의 일부가 망가져도 시스템이 계속 동작할 수 있어야 한다. 즉 클러스터 사이에 일부 접..
2022.01.23