분류 전체보기

이진 트리 자료구조와 재귀 알고리즘 문제에 대한 문제이다. 문제 링크 : https://www.acmicpc.net/problem/1991 문제 참고 참고로 전위 순회, 중위 순회, 후위 순회에 대한 정리가 먼저 필요하다면 아래 게시글을 참고하면 된다. [자료구조] Tree 순회 방법 - 전위/중위/후위 순회 & Java 예시 코드 자료 구조 중 트리가 있다. 트리 구조를 순회하는 방법에는 세 가지 방법이 있다. 전위 순회(Pre-order) 중위 순회(In-order) 후위 순회(Post-order) 이러한 순회 방법은 트리 내의 모든 노드를 방문하는 hoehen-flug.tistory.com 사실 전위/중위/후위 순회를 예시 코드를 통해 이해했다면 이 문제를 푸는 데에도 오랜 시간이 걸리지는 않을 것..
· Java
오늘은 ORM에 대해 정리해본다. ORM(Object Relational Mapping)이란? 데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 개념을 영속성(Persistence)이라고 한다. Java에서는 데이터의 영속성을 위한 JDBC를 지원해주는데, 이는 매핑 작업을 개발자가 일일히 수행해야 하는 번거로움이 있다. SQL Mapper와 ORM은 JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있도록 기능을 제공해주는 Persistence Framework 종류이다. SQL Mapper SQL Mapper는 Object와 SQL의 필드를 매핑하여 데이터를 객체화 하는 기술이다. 객체와 테이블 간의 관계를 매핑하는 것이..
· Java
Java로 개발을 시작하기도 전부터 'JVM에 대해서는 잘 알고 있어야 한다'는 이야기를 들었었다. 특정 운영체제 종속적이지 않고, 직접 메모리를 관리해주는 등 JVM이 중요한 이유도 함께 들었던 기억이 있다. 오늘 드디어 이 JVM에 대해 간단히 정리를 해본다. JVM(Java Virtual Machine) JVM은 Java Virtual Machine, 즉 자바 가상 머신의 약자로 자바 프로그램 런타임 환경을 제공하는 소프트웨어이다. 자바 애플리케이션을 클래스 로더를 통해 읽어 들여, 자바 API와 함께 실행하는 역할을 한다. Java와 OS 사이에서 중개자 역할을 수행해 Java가 OS에 구애받지 않고 실행되도록 한다. 또한, Garbage Collection, 즉 프로그램 메모리 관리도 하며 최적..
· DataBase
SELECT Query문은 FROM/JOIN, WHERE, GROUP BY, HAVING, SELECT, ORDER BY 순서로 실행된다. 1. FROM/JOIN 절 Query 실행 시 FROM 절이 가장 먼저 실행된다. FROM 절에서는 조회할 테이블을 지정하고, 이후 JOIN을 실행해 하나의 가상 테이블로 결합한다. FROM 절이 가장 먼저 실행되기 때문에 WHERE에서 JOIN된 테이블의 필드를 사용할 수 있는 것이다. 2. WHERE 절 WHERE 절에서는 조회해온 테이블에서 조건에 맞는 데이터를 필터링한다. 3. GROUP BY 선택한 컬럼을 기준으로 그룹핑을 진행한다. 4. HAVING 절 GROUP BY를 이용해 그룹핑 한 후에 각 그룹을 필터링할 때 사용되는 조건절이다. GROUP BY는 ..
자료 구조 중 트리가 있다. 트리 구조를 순회하는 방법에는 세 가지 방법이 있다. 전위 순회(Pre-order) 중위 순회(In-order) 후위 순회(Post-order) 이러한 순회 방법은 트리 내의 모든 노드를 방문하는 기초적인 방법들로서, 트리 구조를 다루는데 중요한 역할을 한다. 순회 방법은 트리의 형태와 원하는 결과에 따라 다르게 선택될 수 있다. 그렇다면 이 3가지 트리 순회에 대해 알아보자. 전위순회(Pre-order) 전위순회는 다음 순서로 노드를 순회한다. Root - Left - Right 상단의 트리를 전위순회로 순회한다면 다음과 같은 순서로 노드를 순회할 것이다. 전위 순회한 결과 : ABDCEFG 중위순회(In-order) 중위순회는 다음 순서로 노드를 순회한다. Left - R..
알고리즘 중 재귀의 대표적인 문제 하노이의 탑 문제를 풀어보았다. 문제 링크 : https://www.acmicpc.net/problem/11729 풀이 import java.util.Scanner; /** * 첫째 줄에 옮긴 횟수 K를 출력한다. * 두 번째 줄부터 수행 과정을 출력한다. */ public class Main{ static StringBuilder sb = new StringBuilder(); public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int result = hanoi(n, 1, 3, 2); System.out.println(result); System...
· Kafka
Kafka에서 이벤트를 소비/생성해야 하는 Spring Boot 기반 애플리케이션이 있을 경우 2가지 라이브러리 중 선택해 사용할 수 있다. Kafka Clients Spring Kafka 둘 중 어떤 라이브러리를 사용할 것인가에 대한 스택오버플로우의 한 게시물에서는 이렇게 설명하고 있다. Spring Kafka는 핵심 의존성 주입으로 대표되는 Spring 개념을 적용하는데 도움된다. 이것은 메시지를 보내는데 사용되는 ‘템플릿’을 높은 수준의 추상화로 제공한다. 또한, @KafkaListener 어노테이션과 ‘Listener Container’를 사용해 메시지 기반의 POJO(Message-driven POJOs)를 지원한다. 두 가지 라이브러리에 대해 좀 더 자세히 알아보자. Kafka Clients ..
· vue.js
에러 발생 Header와 Footer component 생성 후 빌드 시 아래와 같은 에러 발생 Component name "Header" should always be multi-word vue/multi-word-component-names Component name "Footer" should always be multi-word vue/multi-word-component-names 에러 원인 에러 문구에 나와 있듯이 에러의 원인은 컴포넌트 명칭이 하나의 단어로 되어 있기 때문에 발생하고 있다. Vue에서는 컴포넌트나 name을 만들 때, 두 단어의 조합으로 해야한다는 규칙이 있다. 그래서 위와 같이 Header나 Footer 등의 일반적인 이름도 에러로 인식한다. 해결 방법 1. 2가지 이상의 ..
문제 발생 application 실행 직후 "Process finished with exit code 0" 이런 메세지가 뜨며 다른 에러 메세지는 없이 그대로 종료되어버렸다. 이 메세지에 대해 찾아보니 대부분 '프로그램이 정상적으로 실행되었고 성공적으로 종료되었음을 나타낸다'고 한다. 이 사이트는 파이썬을 사용했긴 하지만 해당 메세지에 대해서는 동일하게 설명하고 있다. 근데 나는 프로그램 종료가 되면 안되는 상황인데? 대체 왜..? 원인 파악 이 문제는 내장 톰캣과 관련된 것이라고 한다. 앞서 말했듯 실행은 정상적으로 되었지만 application이 내장 톰캣에 올라가지 못한 것이다. 해결 생각보다 해결 방법은 간단했다. Spring Boot는 웹 애플리케이션을 실행하기 위해 내장 톰캣을 기본적으로 제공..
· Tool
새로운 프로젝트를 생성해 IntelliJ에서 Gradle을 이용해 빌드를 했는데 뭔가 이상하다. 살펴봤더니 build.gradle 파일에서 "No candidates found for method call plugins" 오류가 발생했다. 그렇다면 gradle을 리로드하자! gradle 탭 클릭 > gradle project 오른쪽 마우스 클릭 > Reload Gradle Project 클릭 IntelliJ 재부팅 오류가 해결됐다.
토발자_Hflug
'분류 전체보기' 카테고리의 글 목록 (2 Page)