자바(Java) 예제: 인접한 사방향(상하좌우, 동서남북) 탐색 (방향 벡터 1)

자바에서, 예를 들어 지도인 map이 있고, 여기에서 "옷"이 사람인 경우 그 사람 주변(상하좌우, 동서남북)에 무엇이 있는지 탐색하는 예제입니다. dx, dy 배열을 설정하고 (예제에서는 dir라는 이름의 2차원 int 배열로 했습니다.) 맵을 2중 for문을 돌면서 사람("옷")을 만나면 그 안에서 또 4번 반복하는 for문을 실행해 주변에 무엇이 있는지 확인합니다. dx(dir[0]), dy(dir[1])의 값에 따라 탐색 더보기…

자바(Java) 예제: 재귀 호출(Recursive Call, 재귀 함수, 재귀 알고리즘)

재귀호출 설명 재귀(Recursion) 알고리즘이란 어떠한 문제를 자기 자신을 호출하여 해결하는 과정을 말합니다. 링크 예제 1: 코드 실행 추적 다음은 정보처리산업기사에서 출제된 문제입니다. 다음 코드의 실행 결과는? public class RecursiveExample { public static int recursive(int n) { int i; if (n < 1) return 2; else { i = (2 * 더보기…

자바(Java) 예제: 최대 힙 (Max Heap)

자료구조 학습용 예제입니다. 힙과 배열 힙(Heap): 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리: 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 일반적으로 힙 구현시 배열 자료구조를 활용함 배열은 인덱스가 0번부터 시작하지만, 힙 구현의 편의를 위해, root 노드 인덱스 번호를 1로 지정하면, 더보기…

자바(Java): 양쪽 연결 리스트(Doubly Linked List; 더블 링크드 리스트) [자바 공식 제공 & 알고리즘 학습용 예제]

연결 리스트 (자바 공식 제공) ArrayList()와 사용법은 거의 같습니다. 다만 내부 동작 방식이 다릅니다. package blog.dblinkedlist; import java.util.LinkedList; import java.util.List; public class LinkedListTest { public static void main(String[] args) { List<Object> list = new LinkedList<>(); for(int i = 1; i <= 12; i++) { list.add(i); } // 인덱스 바로 뒤에 더보기…

Spring Boot 예제: 데이터베이스 입출력(CRUD)이 가능한 RestController 제작

전체 소스 보기 프로젝트 구조 1. Spring Boot 프로젝트 생성 Spring Boot: 설치 및 기본 설정 (macOS 및 Eclipse 기준)   2. application.properties에 데이터베이스 연결 (mariadb) Spring Boot: mariadb 연결하기 (JDBC-Maven 기준)   3. VO(Value Object; DTO) 작성 (Todo.java) package com.springboot.simpletodo.vo; public class Todo { private int id; private String 더보기…

자바 예제: 한글 검색 SQL 만들기 (자음 초성 검색 포함)

한글 유니코드와 관련된 내용은 이 글을 참고하세요: Java 예제: 한글 초성 중성 종성 분리 (자모분리)   만들고자 하는 SQL(mariadb)은 다음과 같습니다. SELECT `id`, `keyword`, `date`, count(keyword) as kcount FROM `recent_search_keyword` WHERE keyword >= ‘가’ and keyword <= ‘깋’ group by keyword order by keyword 자바(또는 Spring)에서 입력된 키워드를 분석해서 위 SQL의 더보기…

Spring Boot: “네이버 아이디로 로그인하기” 연동 – 스프링 시큐리티와 연결 (3)

보다 개선된 네이버 로그인 – 스프링 부트(Spring Boot): 구글 로그인 연동 (스프링 부트 스타터의 oauth2-client) 이용 + 네이버 아이디로 로그인   이전글의 두 상황을 결합하여 네이버 아이디로 로그인(이하 네아로)을 스프링 시큐리티와 연결하는 예제입니다. Spring Boot: – 네이버 아이디로 로그인하기 – 연동하기 (1) Spring Boot: 시큐리티(Security) – 4 – 로그인 폼을 거치지 더보기…

Spring Boot: “네이버 아이디로 로그인하기” 연동 – 스프링 시큐리티와 연결 (2)

깃허브에서 전체 코드 보기 – https://github.com/ayaysir/spring-boot-security-example-1 보다 개선된 네이버 아이디로 로그인 – 스프링 부트(Spring Boot): 구글 로그인 연동 (스프링 부트 스타터의 oauth2-client) 이용 + 네이버 아이디로 로그인   이전글의 두 상황을 결합하여 네이버 아이디로 로그인(이하 네아로)을 스프링 시큐리티와 연결하는 예제입니다. Spring Boot: – 네이버 아이디로 로그인하기 – 연동하기 (1) Spring Boot: 시큐리티(Security) 더보기…

Spring Boot: “네이버 아이디로 로그인하기” 연동 – 스프링 시큐리티와 연결 (1)

깃허브에서 전체 코드 보기 – https://github.com/ayaysir/spring-boot-security-example-1 보다 개선된 네이버 로그인 – 스프링 부트(Spring Boot): 구글 로그인 연동 (스프링 부트 스타터의 oauth2-client) 이용 + 네이버 아이디로 로그인 이전글의 두 상황을 결합하여 네이버 아이디로 로그인(이하 네아로)을 스프링 시큐리티와 연결하는 예제입니다. Spring Boot: – 네이버 아이디로 로그인하기 – 연동하기 (1) Spring Boot: 시큐리티(Security) – 4 더보기…

Spring Boot 예제: 회원가입 폼 만들기

이 예제에는 스프링 시큐리티와 Thymeleaf가 사용되었습니다. 기초적인 데이터베이스 insert 예제로, 특별한 내용은 없고 다음을 연습하기 위해 만들었습니다. 회원 테이블에 비밀번호를 BCrypt로 해싱한 텍스트를 입력 원칙적으로 입력한 값에 대한 유효성 검사는 프론트엔드 측과 백엔드 측 모두에서 행해져야 하는데, 백엔드 측의 유효성 검사 과정을 추가 시간 관계상 프론트엔드 측 유효성 검사는 구현하지 더보기…