본문 바로가기

전체 글160

자료구조 자료구조 자료구조(data structure)는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다. 또는 특정 모양 자체를 자료구조라고도 부른다. 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 읽어보기 https://velog.io/@yukina1418/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EB%8A%94-%EC%A0%95%EB%A7%90-%EC%A4%91%EC%9A%94%ED%95%A0%EA%B9%8C-%EC%9E%91%EC%84%B1%EC%A4%91 https://ko.wiki.. 2023. 4. 25.
동기와 비동기의 차이 동기(synchronous) 요청과 결과가 동시에 일어나는 방식으로 요청을 보낸 후 응답을 받아야 다음 동작이 진행된다. 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 리턴받기 전까지는 다른 것을 하지 못하고 기다려야 한다. 순서에 맞춰 진행되는 장점이 있지만, 여러 가지 요청을 동시에 처리할 수 없다. - 설계가 매우 간단하고 직관적이다. - 결과가 주어질 때까지 대기해야 한다. 비동기(Asynchronous) 요청과 결과가 동시에 일어나지 않는 방식으로 요청과 결과가 동시에 일어나지 않는다. 요청한 곳에 결과가 나타나지 않으며, 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 기다리지 않고, 다른 것을 수행할 수 있으며 서버로 다른 요청을 보낼 수도 있다. - 요청에 대한 결과가 반환.. 2023. 4. 21.
MySQL MySQL MySQL은 가장 널리 사용되고 있는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)이다. MySQL은 다중 사용자와 다중 스레드를 지원하며, C언어, C++, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공하고 있다. MySQL은 유닉스, 리눅스, 윈도우 등 다양한 운영체제에서 사용할 수 있으며, 특히 PHP와 함께 웹 개발에 자주 사용된다. 또한, 오픈 소스 라이센스를 따르기는 하지만, 상업적으로 사용할 때는 상업용 라이센스를 구입해야만 한다. SQL(Structured Query Language)이란? : 데이터베이스에서 자료를 처리할 때 사용하는 구조화된 질의어를 의미한다. MySQL의 장점 1. 오픈 소스 라이센스를 따르기.. 2023. 4. 19.
제네릭(Generic)? 제네릭(Generic) : 자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미한다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 컴파일 시 미리 타입 검사(type check)를 수행할 때의 장점 1. 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다 2. 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다. JDK 1.5 이전에서는 여러 타입을 사용하는 대부분의 클래스나 메소드에서 인수나 반환값으로 Object 타입을 사용했다. 하지만 이 경우에는 반환된 Object 객체를 다시 원하는 타입으로 타입 변환해야 하며, 이때 오류가 발생할 가능성도 존재한다.. 2023. 4. 18.
컬렉션 프레임워크(collection framework) 컬렉션 프레임워크(collection framework)란? : 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. 컬렉션 프레임워크 주요 인터페이스 1. List 인터페이스 2. Set 인터페이스 3. Map 인터페이스 이 중에서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의된다. 따라서 List 인터페이스와 Set 인터페이스의 공통된 부분을 Collection 인터페이스에서 정의하고 있다. Lis.. 2023. 4. 16.
객체지향 설계 원칙 SOLID SOLID(객체지향언어를 이용해서 좋은 클래스를 설계하기 위한 5가지 원칙) SRP(Single Responsibility Principle - 단일책임의 원칙) - 한 클래스는 하나의 책임(기능)만 적용할 수 있도록 설계한다. 변경을 할 때 수정할 내용이 거의 없으면 단일책임원칙을 잘 적용한 것이다(캡슐화). - 계층을 나누는 이유가 이러한 이유 때문이다. - MVC패턴의 예 - ex) 무언가를 등록하는 클래스라면 이 클래스는 등록관련 문제를 수정할 때만 수정돼야 한다. OCP(Open Close Principle - 개방 폐쇄의 원칙) - 소프트웨어는 확장(기능추가)에는 열려있어야하고 변경(기존에 실행이 잘 되는 코드에는)에는 닫혀있어야 한다. - 기존의 코드를 변경하지 않고 기능을 추가할 수 있어야.. 2023. 4. 12.
Oracle Oracle 오라클(Oracle)은 미국 텍사스에 본사를 둔 소프트웨어 회사로, 대표적인 제품으로는 오라클 RDBMS가 있다. 이 회사의 대표적인 제품인 데이터베이스 제품, 오라클 RDBMS는 세계 최고의 점유율을 차지하고 있다. 오라클 데이터베이스(Oracle Database 또는 Oracle RDBMS)는 미국 오라클(Oracle)사의 관계형 데이터베이스 관리 시스템의 이름이다. 현재 유닉스 환경에서 가장 널리 사용되는 RDBMS이다. 검색이나 업데이트용 언어로는 국제 표준화 기구의 표준 구조화 조회 언어와 PL/SQL을 지원한다. 데이터베이스(Database)란? : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다. 출처 및 참고 - 위키백과 2023. 4. 11.
이너조인과 아우터조인 JOIN : 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것 INNER JOIN(내부 조인) 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다. 보통 '조인'으로 불리는 것이 내부 조인이며, 가장 많이 사용된다. SELECT FROM INNER JOIN ON [WHERE 검색 조건] OUTER JOIN(외부 조인) 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다. SELECT FROM OUTER JOIN ON [WHERE 검색 조건] LEFT OUTER JOIN: 왼쪽 테이블의 모든 값이 출력되는 조인 RIGHT OUTER JOIN: 오른쪽 테이블의 모든 값이 출력되는 조인 FULL OUTER JOIN: 왼쪽 또는 오른쪽 테이블의 모든 값이.. 2023. 4. 10.
AOP (Aspect Oriented Programming, 관점 지향 프로그래밍) AOP (Aspect Oriented Programming) AOP는 관전 지향 프로그래밍으로, 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. *모듈화 : 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것 예로들어 핵심적인 관점은 결국 우리가 적용하고자 하는 핵심 비즈니스 로직이 된다. 또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들 수 있다. AOP는 흩어진 관심사(Crosscutting Concerns)를 모듈화 할 수 있는 프로그래밍 기법이다. 소스 코드상에서 계속 반복해서 사용되는 부분들을 흩어진 관심사(Crosscutting Concerns)라고.. 2023. 4. 7.