[공부] 프로그래밍/프로그래밍의 기초
-
Spring PSA[공부] 프로그래밍/프로그래밍의 기초 2024. 4. 23. 10:52
Spring PSA다양한 기술을 통일된 추상화로 제공하여 개발자가 특정 구현에 종속되지 않고 작업할 수 있게 해줍니다. 이러한 추상화는 개발자가 밑바닥부터 구현에 집착할 필요 없이 코드를 작성할 수 있도록 도와주며, 결과적으로 코드의 유지보수성과 유연성을 높여줍니다.예를 들어 간단히 설명하자면 스프링에서 어노테이션을 선언하는 것만으로 별도의 코드 추가 없이 서비스를 사용할 수 있습니다. 이것은 내부적으로 코드가 추상화되어 숨겨져 있기 때문입니다. 추상화를 사용하여 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공해 주는 것이 서비스 추상화(Service Abstraction)입니다.참고 : https://calgaryhomeless.tistory.com/10
-
매핑[공부] 프로그래밍/프로그래밍의 기초 2024. 4. 18. 12:49
매핑매핑(mapping)은 객체(Object)와 데이터베이스(Database) 간의 상호 변환을 의미합니다. 객체는 자바에서 사용되는 데이터 구조를 나타내며, 데이터베이스는 데이터를 저장하고 관리하는 시스템입니다. 매핑은 객체와 데이터베이스 간의 구조적 불일치를 해결하기 위해 필요합니다. 이를 통해 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간에 효율적으로 상호 작용할 수 있습니다.예를 들어, 자바 언어로 작성된 사용자(User) 객체와 MySQL 데이터베이스에 있는 'users' 테이블을 매핑할 수 있습니다. 사용자 객체의 속성(예: 이름, 나이, 이메일)은 'users' 테이블의 열과 일치합니다. 객체의 메서드는 데이터베이스 작업(예: 삽입, 업데이트, 삭제)을 수행하는 데 사용될 수 있습니다...
-
비동기 처리[공부] 프로그래밍/프로그래밍의 기초 2024. 4. 10. 14:57
비동기 처리비동기 처리(Asynchronous processing)는 작업이 완료될 때까지 기다리지 않고 다른 작업을 계속할 수 있는 방식을 의미합니다. 이는 특히 작업이 시간이 오래 걸리거나 외부 자원에 의존해야 할 때 유용합니다.예를 들어, 웹 애플리케이션이 사용자에게 데이터베이스에서 데이터를 가져와야 한다고 가정해 봅시다. 만약 이 작업을 동기적으로 처리한다면, 데이터베이스에서 응답이 올 때까지 웹 애플리케이션은 대기 상태가 됩니다. 이는 다른 사용자들의 요청도 처리하지 못하게 만들 수 있습니다.하지만 비동기 처리를 사용하면 웹 애플리케이션이 데이터베이스에 요청을 보낸 후에도 다른 작업을 계속할 수 있습니다. 데이터베이스의 응답을 기다리는 동안에도 웹 애플리케이션은 다른 요청을 처리하거나 사용자에게..
-
thread[공부] 프로그래밍/프로그래밍의 기초 2024. 4. 10. 14:52
threadthread는 다중 작업 운영 체제에서 프로세스 내에서 실행되는 가장 작은 실행 단위입니다. 이는 프로그램 내에서 독립적인 실행 경로를 나타냅니다. thread들은 동일한 메모리 공간과 자원을 공유하며, 동시에 실행될 수 있습니다.각각의 thread는 자신만의 프로그램 카운터, 레지스터 세트 및 스택 공간을 가지고 있지만, 힙 메모리와 같은 프로세스 관련 자원은 공유합니다. thread를 사용하면 프로그램이 동시에 여러 작업을 수행할 수 있으므로 효율성과 응답성이 향상됩니다.thread는 병렬 처리, 비동기 I/O 작업, 네트워크 프로그래밍에서 여러 연결을 처리하는 데 사용되거나 그래픽 사용자 인터페이스(GUI)에서의 다중 작업과 같은 다양한 목적으로 활용될 수 있습니다. thread는 반응성..
-
API[공부] 프로그래밍/프로그래밍의 기초 2024. 3. 13. 13:18
API API(응용 프로그램 프로그래밍 인터페이스)란 소프트웨어끼리 손쉽게 소통할 수 있도록 도와주는 도구입니다. 예를 들어 당신이 레스토랑에 있다고 상상해보세요.당신은 손님이고 음식을 주문하고 싶어합니다. 웨이터는 당신과 주방 사이의 중개자 역할을 합니다. 당신은 주방이 음식을 준비하는 방법을 알 필요가 없습니다. 단지 주문을 웨이터에게 전달하면 됩니다. 이 비유에서: 당신은 클라이언트 애플리케이션입니다.주방은 서버 또는 기능을 제공하는 서비스입니다.웨이터는 API입니다. 주문(요청)을 받고 주방에 전달하며 준비된 음식(응답)을 다시 가져와서 당신에게 제공합니다. API(웨이터)는 음식이 어떻게 준비되는지 모든 세부 사항을 이해하지 않고도 주방(서버)과 상호 작용할 수 있는 구조화된 방법을 제공하여 프..
-
클러스터[공부] 프로그래밍/프로그래밍의 기초 2024. 3. 12. 15:28
클러스터클러스터란 여러 대의 컴퓨터나 서버가 함께 연결되어 하나의 시스템으로 동작하도록 구성된 것을 말합니다. 클러스터는 주로 성능, 신뢰성, 확장성을 향상시키기 위해 다양한 컴퓨팅 환경에서 사용됩니다.클러스터의 주요 특징은 다음과 같습니다:◇ 상호 연결: 클러스터 내의 컴퓨터나 서버는 네트워크를 통해 서로 연결되어 있어 통신하고 자원을 공유할 수 있습니다. 병렬 처리: 클러스터는 병렬 처리 기술을 사용하여 여러 노드가 동시에 작업을 수행할 수 있습니다. 이는 빠른 계산과 데이터 처리를 가능하게 합니다.◇ 고가용성: 클러스터는 고가용성을 보장하기 위해 중복 및 장애 조치 메커니즘을 갖추고 있습니다. 하나의 노드가 고장 나도 작업이 중단되지 않고 다른 노드로 자동으로 전환됩니다.◇ 확장성: 클러스터는 필요..