전체 글 70

006. CI/CD

1. CI/CD 개념 - 애플리케이션 개발 단계를 자동화하여 보다 짧은 주기로 배포하는 전략 또는 방법 - 코드통합, 테스트, 릴리즈, 배포(Deployment) 등의 애플리케이션 라이프사이클 전체 과정을 자동화하고 이 과정을 모니터링 가능토록 하는 것. (연속된 과정을 "CI/CD 파이프라인" 이라고도 한다.) - 개발자가 아닌 사람도 쉽게 빌드, 배포를 가능하도록 하는 것 -> 개발자는 개발에만 집중 2. 대상 시점 CI와 CD는 세부적으로 아래와 같이 나눠지며, 개발/배포 단계에 적용되는 전략이 달라진다. 3. CI (Continuous Integration) Build & Packaging 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 병합되는 것이다. Build, Te..

IT Interview 2021.09.13

005. 싱글톤 패턴

싱글톤 패턴 "어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴" 을 의미한다. 즉 생성자의 호출이 반복적으로 이뤄져도 실제로 생성되는 객체는 최초 생성된 객체를 반환 해주는 것이다. 그렇다면 싱글톤 패턴을 사용하는 이유는? 위에서도 언급된 바와 같이 한번의 객체 생성으로 재 사용이 가능하기 때문에 메모리 낭비를 방지할 수 있다. 또한 싱글톤으로 생성된 객체는 무조건 한번 생성으로 전역성을 띄기에 다른 객체와 공유가 용이하다. 이렇게만 보면 싱글턴이 좋아보일 수 있지만 문제점도 존재한다. 싱글톤의 문제점 싱글톤도 위에서 언급된 것 처럼 전역성을 띄면서 다른 객체와 공통으로 사용하는 경우와 같은 몇 가지 케이스에서만 사용할 때 효율적이며 그 외에는 ..

IT Interview 2021.09.12

004. 디자인패턴

배경 논문 "Using Pattern Languages for Object-Oriented Programs" (1987)을 통해 제안되었다. 이후 큰 유명세를 타게 된 것은 23개의 패턴을 수록한 'GoF'(Gang of Fours). Design Patterns: Elements of Reusable Object-Oriented Software. (1995)이다. 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다는 의미이다. 패턴이란 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴이라 한다. 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 ..

IT Interview 2021.09.12

002. IoC, AOP , DI, POJO 의 개념

1. IoC (Inversion of Control) IoC 란 코드의 흐름을 제어하는 주체가 바뀌는 것이다. 코드의 흐름을 제어한다는 것은 여러 행위를 포함한다. 오브젝트를 생성하는 것, 오브젝트의 생명주기를 관리하는 것, 메소드를 수행하는 것 등. 그리고 일반적인 프로그램은 이러한 행위를 하나부터 열까지 모두 스스로 수행한다. (우리가 처음 만들었던 프로그램을 잘 생각해보자.) IoC 를 적용한다는 것은 이러한 흐름 제어를 또다른 제 3자가 수행한다는 것을 의미한다. 1) IoC에서는 Object가 자신이 사용할 Object를 생성하거나 선택하지 않는다. 2) Object는 자신이 어떻게 생성되고 사용되는지 알 수 없다. 3) 모든 Object는 제어 권한을 위임받은 특별한 Object에 의해 만들어..

IT Interview 2021.09.11

001. Spring Framework

로드 존슨이 2002년에 출판한 자신의 저서인 Expert One-on-One J2EE Design and Development 에 선보인 코드를 기반으로 시작하여 점점 발전하게 되었다. 이 프레임워크는 2003년 6월에 최초로 아파치 2.0 라이선스로 공개되었으며 주요 버전 이력은 다음과 같다. 1.0 : 2004년 3월 2.0 : 2006년 10월 2.5 : 2007년 11월 3.0 : 2009년 12월 3.1 : 2011년 12월 4.0 : 2013년 12월 5.0 : 2017년 9월 2006년에 1.2.6 버전으로 Jolt Productive Award와 Jax Innovation Award를 수상하였다. 역사 로드 존슨이 2002년에 출판한 자신의 저서인 Expert One-on-One J2EE..

IT Interview 2021.09.10

[ Knowledge ] Thread Safe란?

Thead Safe 스레드 안전(thread 安全, 영어: thread safety)은 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻한다. 보다 엄밀하게는 하나의 함수가 한 스레드로부터 호출되어 실행 중일 때, 다른 스레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 스레드에서의 함수의 수행 결과가 올바로 나오는 것으로 정의한다. HashMap는 thread-safe한가? 결론 부터 말하자면 HashMap은 thread-safe하지 않다. 이유는 여러 스레드가 동일한 HashMap 객체에 액세스하고 HashMap(put(), remove() 메서드) 구조를 수정하려고 하면 HashMap의 상태가 일..