본문 바로가기

전체 글133

[Spring 공부/스프링의 정석] 관심사의 분리와 MVC 패턴 1. 관심사의 분리 1) 관심사란 컴퓨터 과학에서 관심사(concern)는 컴퓨터 프로그램의 코드에 영향을 미치는 특정한 정보 집합이다. 관심사는 데이터베이스 상호작용의 세세한 부분처럼 포괄적이거나, 기초적인 계산을 수행하는 등의 구체적인 경우일 수 있으며 이는 개발자, 그리고 논의되는 프로그램 간의 소통 수준에 따라 달라진다. 관심사(컴퓨터 과학), 위키백과 https://ko.wikipedia.org/wiki/%EA%B4%80%EC%8B%AC%EC%82%AC_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99) 2) 관심사를 분리해야 하는 이유 관심사의 분리는 하나의 관심사가 하나의 기능만 수행하도록 코드를 구성하는 것을 말한다. 한 객체(모듈, 클래스) 안에서 다양.. 2022. 11. 2.
[코딩테스트/백준 알고리즘] 13023번 - ABCDE (자바, Java 풀이) 문제 https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 문제 설명 문제 풀이 이 문제는 DFS를 통해 길이가 5인 경로가 존재하는지 확인하는 방법으로 해결할 수 있다. 하지만 이번 풀이는 다른 방법으로 해결해보겠다. 이 방법을 위해선 그래프를 표현하는 방법 중 인접 행렬, 인접 리스트, 간선 리스트를 모두 사용해야 한다. 간선 리스트를 사용해서 A - B 를 찾는다 간선 리스트를 사용해서 C - D 를 찾는다. 인접 행렬을 사용해서 B 와 C가 연결되어 있는지 확인한다. 입접 리스트를 사용해서 D에서 E(A, B, C, D가 아닌 친구)가 연결되어 있.. 2022. 11. 1.
[코딩테스트/알고리즘] 그래프(Graph) - 그래프 종류, 그래프 용어 1. 그래프란 그래프는 자료구조의 일종으로 정점과 간선으로 나타낸다. 정점(Vertex) : 노드(Node)라고도 불리며 데이터가 저장된다. 간선(Edge) : 정점 간의 관계를 나타낸다. V개의 정점과 E개의 간선을 가진 그래프 G는 G = (V, E)로 나타낸다. 2. 그래프의 종류 1) 방향이 있는 그래프 그래프의 간선 간에 방향이 있는 그래프 A → C로 가는 간선은 있다. C → A로 가는 간선은 없다. 2) 방향이 없는 그래프 (양방향 그래프) 그래프의 간선 간에 방향이 없는 그래프 A - C 간에 간선의 방향이 없다. A - C는 A → C 와 C → A를 나타낸다. 3) 간선이 여러개인 그래프(Mumtiple Edge) 두 정점 사이에 간선이 여러 개인 그래프 아래 그래프는 A - B를 연.. 2022. 10. 27.
[Spring 공부/스프링 입문] 스프링 프로젝트 생성 사전 준비물 Java 11 IDE : InteliJ 1. InteliJ를 사용해서 생성 InteliJ Ultimate 버전을 사용하고 있다면 InteliJ 안에서 스프링 프로젝트를 생성할 수 있다. 만약 Community 버전을 사용하고 있다면 start.spring.io를 통해 프로젝트를 생성하면 된다. 1) 새로운 프로젝트 생성 우측 상단 NEW PROJECT 선택 2) 프로젝트 설정 좌측 Generator에서 Sping Initializr을 선택한다. 1. Language : 언어 선택 Java 2. Type : 필요한 라이브버리를 관리하고 빌드까지 해주는 툴 선택 Maven : 과거에 많이 씀 Gradle : 요즘 많이 씀 (선택) 3. Group : 그룹 명 com.example. 과 같이 많이.. 2022. 10. 27.
[코딩테스트/백준 알고리즘] 1003 - 피보나치 함수 (자바, Java 풀이) 문제 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 설명 문제 풀이 시간 제한이 엄격하기 때문에 실제로 피보나치 함수를 실행해서 풀 수는 없는 문제다. 전형적인 다이나믹 프로그래밍 문제였다. call 0 call 1 fibonacci(0) fibonacci(0) 1 0 fibonacci(1) fibonacci(1) 0 1 fibonacci(2) fibonacci(1) + fibonacci(0) 1 1 fibonacci(3) fibonacci(2) + fibonacci(1) 1 2 fiboncaai(4) fibonacci(3) + fi.. 2022. 10. 18.
[개발/AWS] AWS EC2 인스턴스 생성하기 AWS(Amazon Web Service) 서비스를 개발하고 다른 사람들도 쓸 수 있게 배포하기 위해서는 서버가 필요하다. 서버를 직접 구축하고 운용하는 것는 것은 힘들기 때문에 많은 회사가 AWS나 MS AZURE, Google Cloud Flatform을 사용하여 서비스를 배포한다. 아마존 웹 서비스(영어: Amazon Web Services, 약칭: AWS)는 아마존닷컴의 클라우드 컴퓨팅 사업부이다. 아마존 웹 서비스는 다른 웹 사이트나 클라이언트측 응용 프로그램에 대해 온라인 서비스를 제공하고 있다. 이러한 서비스의 상당수는 최종 사용자에 직접 공개되는 것이 아니고, 다른 개발자가 사용 가능한 기능을 제공하는 플랫폼을 제공하는 PaaS이다. 아마존 웹 서비스 : https://ko.wikipedi.. 2022. 10. 7.