본문 바로가기

전체 글

(89)
템플릿 메서드 패턴 (Template Method Pattern) 템플릿 메서드 패턴은 핵심 기능과 부가 기능을 분리하여 단일 책임 원칙(SRP)을 지켜 변경 지점을 하나로 모아 변경에 쉽게 대처할 수 있게 만드는 구조이다. 상속과 오버라이딩을 통한 다형성으로 부모 클래스에 부가 기능(템플릿)을 정의하고 핵심 기능을 자식 클래스에 정의한다. 작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기한다. 템플릿 메서드를 사용하면 하위클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있다. 템플릿 메서드 패턴은 자식 클래스를 여러개 만들어줘야 하는 단점이 있다. 이런 단점을 보완하기 위해 익명 내부 클래스를 사용한다. 익명 내부 클래스를 구현하면 객체 인스턴스를 생성하면서 동시에 생성할 클래스를 상속 받은 자식 클래스를 정의할 수 ..
레이어드 아키텍처(Layered Architecture) 레이어드 아키텍처 패턴은 고전적으로 대중적인 아키텍처 패턴이며 프로젠테이션 계층, 비즈니스 계층, 퍼시스턴트 계층으로 구성된다. 각 계층이 역할에 따라 독립적으로 나뉘어 코드의 확장성이 높고 코드의 구조를 파악하기 쉽고 재사용이 가능하다. Top-Down 방식으로 하위 계층으로 단방향 의존성을 가진다. Presentation Layer 클라이언트 시스템과 연결되는 부분으로 백엔드 API에서는 앤드포인트 부분에 해당하고 웹사이트에서는 UI에 해당 REST API의 엔드포인트를 정의하고 HTTP 요청을 읽는 로직을 구현 Business Layer 비즈니스 로직을 구현하는 부분으로 실제 시스템에서 처리 되어야하는 로직을 구현 Persistence Layer 데이터베이스와 관련된 로직을 구현하며 데이터 CRUD..
[Git] mac os 업데이트 후 오류 mac os 업데이트 후 Intellij IDEA 에서 git을 사용 하려는데 다음과 같은 문제가 발생했다. 문제 해결을 위해 command line developer tools을 설치해준다. xcode-select --install 터미널에서 다음 명령어를 입력해주면 다음과 화면이 나온다.
너비 우선 탐색(BFS: Breadth First Search) 너비 우선 탐색(BFS)란? 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법 큐를 이용해서 지금 위치에서 갈 수 있는 곳을 모두 큐에 넣는 방식 큐에 넣을 때 방문했다고 체크 모든 가중치가 1일때 최단 거리를 구하는 알고리즘 너비 우선 탐색 알고리즘 breadth_first_search(v) v를 방문되었따고 표시; 큐 Q에 정점 v를 삽입; while (not is_empty(Q)) do Q에서 정점 w를 삭제; for all u ∈ (w에 인접한 정점) do if (u가 아직 방문되지 않았으면) then u를 큐에 삽입; u를 방문되었다고 표시;
(Spring) 2. MariaDB와 Mybatis 연동 참고: https://devfunpj.tistory.com/6?category=8595371. MariaDB와 MySQL Workbench 설치https://javaplant.tistory.com/312. Spring, MariaDB, MyBatis 연동pom.xml 수정MariaDB, Mybatis 관련 dependency 추가12345678910111213141516171819202122232425262728293031323334 org.mariadb.jdbc mariadb-java-client 2.0.3 commons-dbcp commons-dbcp 1.4 org.springframework spring-jdbc 4.3.9.RELEASE org.mybatis mybatis 3.4.4 org.myba..
(Spring) 1. 스프링 설정 1. JDK 설치 및 시스템 환경 변수 설정JAVA JDK 8 설치https://www.oracle.com/java/technologies/javase-jdk8-downloads.html시스템 - 고급 시스템 설정 - 환경 변수 - 새로 만들기(시스템 변수)JAVA_HOME 시스템 변수 추가 (C:\Program Files\Java\jdk1.8.0_241)시스템 - 고급 시스템 설정 - 환경 변수 - Path 편집 (시스템 변수)%JAVA_HOME%\bin 추가2. 이클립스 설치 후 인코딩 설정이클립스 설치https://www.eclipse.org/downloads/Eclipse IDE for Java EE Developers 설치인코딩 설정Window - PreferencesGeneral - Works..
(Django) 3. Django와 PostreSQL 연동 PostgreSQL객체 관계형 데이터베이스 관리 시스템이다. BSD 라이센스로 배포되어 전세계 오픈소스 개발자들과 관련 기업들이 개발에 참여하고 있다.1. PostgreSQL (Linux)1.1 PostgreSQL 설치123456789101112131415#Linux# /projectnameapt-get updateapt-get postgresqlservice postgresql start #postgresql 실행ps -ef|grep postgres #실행 확인su - postgres #관리자 권한 postgres는 관리자 권한으로 실행해야 함psql #postgresql 접속>create database databasename;>create user username with password 'pass..
(Django) 2. Django 설치 및 설정 1. Django 설치12345678910111213141516mkdir projectname #폴더생성cd projectname #폴더진입pip3 install virtualenv #가상환경설치virtualenv venv #가상환경생성ls #현재폴더에 있는 파일과 디렉토리 확인----------------------------## Linux 경우source venv/bin/activate #가상환경으로 진입## Window 경우.\venv\Scripts\activate----------------------------pip3 list #pip3로 설치된 패키지 리스트 확인pip3 install django==2.1 #django 설치django-admin startproject config . #프로젝..