CS study11 디자인 패턴 - 싱글톤 패턴 "싱글톤 패턴" : 객체의 인스턴스가 오직 1개만 생성되는 패턴 왜 쓰나요? - 메모리 측면에서의 이점 : 한 번의 new 연산자를 통해 고정된 메모리를 사용하여 객체 할당 → 나중에 해당 객체에 접근할 때 메모리 낭비 방지 && 이미 생성된 인스턴스 재활용 (속도 측면 이점) - 데이터 공유가 쉬움 : "싱글톤 인스턴스 = 전역적으로 사용되는 인스턴스" → 다른 클래스의 인스턴스가 접근하여 사용가능 but 동시성 문제 이슈 싱글톤 패턴 구현 SingletonTest.java SingletonTest 클래스로 생성된 인스턴스를 공유하는 A Class.java SingletonTest 클래스로 생성된 인스턴스를 공유하는 B Class.java Test.java 마지막 Test 클래스에서 AClass와 BC.. 2023. 8. 10. Answer the Question (8) 1. 절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가? 더보기 - 절차지향 프로그래밍 : 일이 진행되는 순서대로 프로그래밍하는 방법이다. 코드의 가독성이 좋고 컴퓨터의 처리구조와 비슷해 실행 속도가 빠르다. 다만 코드가 순서에 민감하기 때문에 유지보수가 어렵다. - 객체지향 프로그래밍 : 절차지향 프로그래밍이 유지보수가 어렵다는 단점을 보완하기 위해 등장했다. 실세계의 실체를 프로그래밍에 접목하며 시작되었기 때문에 모든 것을 객체로 취급하고 객체 내부의 기능을 사용해 처리하는 방법이다. 객체 내에 담긴 변수와 함수를 이용하여 처리한다. - 함수형 프로그래밍 : 거의 모든 것을 순수 함수로 나누어 문제를 처리하는 기법이다. 작은 문제를 해결하기 위해 함수를 작성하여 가독성을 높이고.. 2023. 7. 28. Answer the Question (7) 1. 웹 서버와 WAS의 차이는? 더보기 - 웹서버는 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 요청을 하면 그 요청에 대한 응답으로 정적 컨텐츠를 제공하는 서버이다. 여기서 웹 서버가 동적 컨텐츠에 대한 요청을 받을 경우 WAS로 해당 요청을 넘겨주고 전달해주기도 한다. ( 종류 : Apache, Nginx 등) - WAS : 웹서버와 반대로 동적 컨텐츠를 제공하는 서버이다. HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로 DB 서버와 같이 수행된다. 2. Stack과 Queue 그리고 Array와 Linked List 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요. 더보기 - Stack : 데이터를 집어넣을 수 있는 선형 자료구조, LIF.. 2023. 7. 27. Answer the Question (6) 1. 트랜잭션이 무엇인지 설명해 주세요 더보기 트랜잭션이란, 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 최소 단위를 말한다. 이 트랜잭션에는 특징이 크게 4가지가 있는데, 원자성, 일관성, 독립성, 지속성 (ACID)이다. - 원자성 : 트랜잭션이 DB에 모두 반영되던지, 아니면 모두 반영되지 않던지 - 일관성 : 트랜잭션 작업 처리 결과가 항상 일관적이어야함 트랜잭션이 진행되는 동안 DB의 변경점이 있으면 안되고 트랜잭션 전 후로 모두 일관적인 데이터를 확인할 수 있어야함 - 독립성 : 트랜잭션은 다른 트랜잭션으로부터 독립적이어야함 어떤 하나의 트랜잭션이라도 다른 트랜잭션의 연산에 끼어들 수 없음 - 지속성 : 트랜잭션이 성공적으로 완료됐다면 결과는 영구적으로 반영되어야 함 트랜잭션이 종료 .. 2023. 7. 26. Answer the Question (5) 1. Spring 에서 사용하는 Rest Client에 대해서 설명해 주세요. 더보기 Rest API 서버에 HTTP 요청을 보낼 수 있는 클라이언트 툴 또는 라이브러리임 즉, Http 통신을 할 수 있는 Rest한 Client라고 생각하면 된다. - 종류 : RestTemplate, WebClient - 버전별 차이 Spring 3.0에서는 RestTemplate, 5.0에서는 WebFlux의 WebClient, 6.0에서는 HTTP Interface로 발전함 - 사용법 참고 https://stir.tistory.com/347 Spring 6.0 HTTP Interface 사용법 및 REST API Client 방식의 변화 이 글은 Spring 6.0의 HTTP Interface 사용법 및 REST A.. 2023. 7. 25. Answer the Question (4) 1. List, Set, Map, HashMap의 차이에 대해서 설명해주세요. - List 더보기 저장공간이 필요에 의해 자동으로 늘어난다. (순서가 있는 저장공간) 중복을 허용하지만 원하는 데이터가 뒤쪽에 위치한다면 속도가 느려질 수 있다. - Set 더보기 순서가 없고 중복을 허용하지 않는 저장공간이므로 속도가 빠르다. 중복되지 않는 데이터를 구할때 유용하다. - Map 더보기 키-값 형태로 데이터가 관리되고 순서가 없다. 키 값은 중복이 허용되지 않는다. 인덱스가 따로 존재하지 않기 때문에 iterator를 사용한다. - HashMap 더보기 키 값의 중복은 허용되지 않고 순서가 없다. 키-값으로 null을 허용하며 동기화가 보장되지 않는다. 검색에 가장 뛰어난 성능을 가진다. 2. 스프링 컨테이너.. 2023. 7. 24. 이전 1 2 다음 320x100