본문 바로가기
하루마감

외우면 좋을거 끄적끄적

by titlejjk 2023. 7. 3.

트랜잭션(Transaction)은 데이터베이스 관리 시스템(DBMS)에서 수행하는 작업의 단위를 의미합니다. 이 작업의 단위는 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)이라는 ACID 원칙을 만족해야 합니다. 트랜잭션은 데이터베이스에서 데이터의 무결성과 일관성을 보장하기 위해 사용됩니다.

객체(Object)는 소프트웨어에서 실제로 존재하는 모든 것을 의미합니다. 객체는 속성과 동작을 가지며, 개별적으로 식별될 수 있습니다.

클래스(Class)는 객체의 설계도 또는 템플릿으로, 객체를 생성하기 위한 속성(attribute)과 동작(method)을 정의합니다. 클래스는 객체를 생성하기 위한 틀로, 동일한 클래스로부터 생성된 객체들은 동일한 속성과 동작을 가집니다.

인스턴스(Instance)는 클래스로부터 생성된 실제 객체를 의미합니다. 클래스의 인스턴스화 과정을 통해 메모리에 할당된 객체를 인스턴스라고 합니다.

메소드(Method)는 객체가 수행할 수 있는 동작이나 기능을 나타냅니다. 메소드는 클래스에 정의되어 있으며, 해당 클래스의 인스턴스에 적용될 수 있습니다.

필드(Field)는 클래스나 객체의 속성을 나타냅니다. 필드는 클래스의 멤버 변수로 정의되며, 해당 클래스의 인스턴스마다 고유한 값을 가질 수 있습니다.

SVN(Subversion)은 버전 관리 시스템 중 하나로, 소프트웨어 개발 프로젝트에서 파일의 버전 관리와 협업을 위해 사용됩니다. SVN은 중앙집중식 버전 관리 시스템으로, 파일의 변경 이력을 저장하고 관리합니다.

오라클 CRUD 중 가장 어려운 부분은 개인적인 경험과 역량에 따라 다를 수 있지만, 보통은 데이터의 수정(Update)과 삭제(Delete) 부분이 복잡하고 실수하기 쉬운 부분으로 여겨집니다. 이는 데이터베이스의 일관성과 정합성을 유지하기 위해 신중한 접근과 조건 확인이 필요하기 때문입니다. 반면에 데이터의 생성(Create)과 조회(Read)는 비교적 간단하게 처리될 수 있습니다.

오버라이딩(Overriding)은 상위 클래스가 가지고 있는 메소드를 하위 클래스에서 재정의하는 것을 의미합니다. 오버라이딩을 통해 하위 클래스는 상위 클래스의 동일한 이름의 메소드를 다시 구현할 수 있습니다. 이렇게 하위 클래스에서 오버라이딩된 메소드는 상위 클래스의 메소드 대신 사용됩니다.

오버로딩(Overloading)은 동일한 이름의 메소드지만 매개변수의 개수나 타입을 다르게 정의하는 것을 의미합니다. 오버로딩을 사용하면 동일한 이름의 메소드를 다양한 매개변수에 대해 사용할 수 있습니다.

오버로딩과 오버라이딩의 차이점은 다음과 같습니다:

오버로딩은 동일한 이름의 메소드를 다른 매개변수로 정의하는 것이며, 컴파일러는 메소드 호출 시 전달된 인자에 맞는 메소드를 선택합니다.
오버라이딩은 상속 관계에 있는 클래스에서 상위 클래스의 메소드를 하위 클래스에서 재정의하는 것이며, 메소드 호출 시 동적 바인딩에 의해 실제로 호출될 메소드가 결정됩니다.
콜백 함수(Callback function)는 다른 함수에게 인자로 전달되는 함수를 말합니다. 이 함수는 특정 이벤트가 발생하거나 조건이 만족될 때 호출되며, 해당 함수를 받은 함수가 원하는 시점에 호출됩니다. 이를 통해 비동기적인 동작이 가능하고, 이벤트 처리나 비동기 작업 완료 후의 후속 작업에 사용될 수 있습니다.

GET과 POST는 HTTP 프로토콜에서 사용되는 요청 방식입니다.

GET 방식은 정보를 서버로부터 가져오는 요청에 사용됩니다. URL에 데이터를 첨부하여 전송하며, 데이터가 URL에 노출되기 때문에 보안에 취약할 수 있습니다. 주로 데이터 조회나 검색에 사용됩니다.
POST 방식은 서버로 데이터를 전송하는 요청에 사용됩니다. HTTP 요청의 본문에 데이터를 담아 전송하며, 데이터가 URL에 노출되지 않기 때문에 보안에 좀 더 안전합니다. 주로 데이터 생성이나 수정에 사용됩니다.
MVC(Model-View-Controller)는 소프트웨어 개발을 위한 아키텍처 패턴으로, 애플리케이션을 세 가지 역할로 분리하여 설계하는 방법입니다.

Model은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터의 상태를 관리하고, 데이터에 대한 조작과 가공을 수행합니다.
View는 사용자에게 데이터를 시각적으로 표현하는 역할을 담당합니다. 사용자 인터페이스를 표현하며, Model의 데이터를 표시하고 사용자의 입력을 전달합니다.
Controller는 사용자의 입력을 받아 Model과 View를 조작하는 역할을 담당합니다. 사용자의 요청을 해석하고, Model의 데이터를 업데이트하고 View를 갱신합니다.
MVC는 애플리케이션의 구조를 분리하여 유지보수와 확장성을 개선할 수 있습니다. Model과 View의 독립성을 높여 개발과 테스트를 용이하게 하고, 사용자 인터페이스와 비즈니스 로직을 분리하여 코드의 재사용성을 높일 수 있습니다. 또한 여러 개발자가 동시에 작업할 때 각자의 역할에 집중할 수 있도록 하는 협업적인 개발 방법론입니다.

디자인 패턴은 소프트웨어 개발에서 자주 발생하는 문제를 해결하기 위해 고안된 일반적인 해결책입니다. 여러가지 디자인 패턴이 존재하지만, 여기서는 MVC와 Observer, Facade 패턴에 대해 설명하겠습니다.

Observer 패턴은 객체 간의 일대다 의존성을 정의하여, 한 객체의 상태 변화가 다른 객체에 자동으로 알려주는 패턴입니다. 주로 이벤트 처리나 상태 변경에 사용되며, 각 객체 간의 결합도를 낮추고 유연한 설계를 가능하게 합니다.

Facade 패턴은 복잡한 서브시스템을 단순화된 인터페이스로 감싸는 패턴입니다. 서브시스템 내부의 복잡한 동작을 숨기고, 클라이언트에게 단순한 인터페이스를 제공함으로써 사용의 편의성을 높입니다. 주로 복잡한 시스템을 사용하기 쉬운 인터페이스로 제공하고자 할 때 사용됩니다.

MVC는 소프트웨어 개발에서 유지보수와 확장성을 개선하기 위해 만들어진 아키텍처 패턴입니다. 기존의 소프트웨어 개발 방법에서는 코드의 유지보수와 확장이 어려워지는 문제가 있었습니다. MVC는 이러한 문제를 해결하기 위해 역할에 따라 코드를 분리하고 각각의 역할을 담당하는 컴포넌트를 독립적으로 개발하고 테스트할 수 있는 구조를 제공합니다.

MVC의 장점:

유지보수와 확장성이 용이해집니다. Model, View, Controller 각각을 독립적으로 수정하고 개선할 수 있습니다.
코드의 재사용성이 증가합니다. Model과 View, Controller를 재사용하거나 다른 프로젝트에서 사용할 수 있습니다.
개발과 테스트가 용이해집니다. 각각의 역할에 집중하여 개발과 테스트를 진행할 수 있습니다.
다양한 플랫폼에서 동일한 모델을 사용할 수 있습니다. Model은 플랫폼에 종속되지 않는 일반적인 로직을 포함하고 있기 때문에 다른 플랫폼에서도 사용할 수 있습니다.
MVC는 웹 애플리케이션 개발에서 널리 사용되는 패턴입니다. 웹 애플리케이션에서는 Model이 데이터베이스와 상호작용하고, View가 사용자 인터페이스를 표현하며, Controller가 사용자의 요청을 처리하고 Model과 View를 조작합니다. 이렇게 구성된 MVC 패턴은 웹 애플리케이션의 유지보수와 확장성을 높이는 데 큰 도움이 됩니다.

댓글