DFS와 BFS1. DFS(Depth-First-Search, 깊이우선탐색) 트리나 그래프에서 한 루트로 탐색하다가 특정 상황에서 최대한 깊숙히 들어가서 확인한 뒤 다시 돌아가 다른 루트로 탐색하는 방식이다. 대표적으로 백트래킹에 사용한다. 일반적으로 재귀호출을 사용하여 구현하지만, 단순한 스택 배열로 구현하기도 한다. 구조상 스택 오버플로우를 유의해야 한다. 갈림길이 나타날 때마다 ‘다른 길이 있다’는 정보만 기록하면서 자신이 지나간 길을 지워나간다. 그러다 막다른 곳에 도달하면 직전 갈림길까지 돌아가면서 ‘이 길은 아님’이라는 표식을 남긴다. 그렇게 갈림길을 순차적으로 탐색해 나가다 목적지를 발견하면 그대로 해답을 내고 종료한다. 장점 단지 현 경로상의 노드들만을 기억하면 되므로 저장공간의 수요가 비..
[자료구조] 자료구조란?1.자료구조란? 자료구조(資料構造, 영어: data structure)는 전산학에서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 위키백과-자료구조 2. 자료구조의 분류 자료구조는 선형구조(Linear)와 비선형구조(NonLinear)로 구분됩니다. 선형구조란 자료를 구성하는 데이터를 순차적으로 나열시킨 형태를 의미합니다. 비선형구조란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 것을 의미 합니다.
[JSP] JSP에서 쿠키(Cookie)에 한글 저장시 에러 해결하는 방법 JSP 에서 쿠키에 한글 저장시 아래와 같은 에러가 나타날 수 있습니다. java.lang.IllegalArgumentException: Control character in cookie value or attribute. 해결방법은 쿠키 생성시 URLEncoder.encode(value, “UTF-8”) 을 사용해서 한글을 저장합니다.쿠키에서 정보를 읽어올 때는 URLDecoder.decoder(value, “UTF-8”) 를 사용하면 됩니다.그리고 jsp 페이지 상단에는 꼭 를 해주셔야 합니다.1.쿠키 생성 - addCookie.jsp addCookie addCookie - 쿠키에 이름 저장하기 getCookie 페이지로 2...
배열(Array)과 ArrayList 차이점 및 활용1. 배열(Array) 배열의 크기는 한번 정하면, 크기를 변경을 할 수 없습니다. Info[ ] infoArr = new Info[5] 배열 초기화시 메모리에 할당되어 ArrayList보다 속도가 빠릅니다.2. ArrayList ArrayList는 크기가 가변적입니다.저장하는 데이터 수에 따라서 크기가 변경됩니다.데이터 추가는 add( ), 삭제는 remover( )를 사용합니다.데이터 추가 삭제시 메모리를 재할당하기 때문에 속도가 배열보다 느립니다.ArrayList 사용법 클릭3.ArrayListTest.javaimport java.util.ArrayList; public class ArrayListTest { public static void ma..
DAO - Data Access Object1.개념 DAO(Data Access Object-데이터 접근 객체)는 데이터베이스에 관련된 작업을 전문적으로 담당하는 객체입니다.2. DAO.javaimport java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; public class DAO { /* * DAO(Data Access Object - 데이터 접근 객체) 데이터베이스에 관련된 작업을 전문적으로 담당하는 객체이다. * */ private Connection co..
Delete 문 실행1. JDBC 드라이버를 로딩 Class.forName(“com.mysql.jdbc.Driver”)2. Connection 객체를 생성 con = DriverManager.getConnection(url, user, pw)3. PreparedStatement 객체 생성, 객체 생성시 SQL 문장 저장 PreparedStaement - SQL문을 데이터베이스에 보내기위한 객체입니다.pstmt = con.preparedStatement(“SQL 문장”)4. pstmt.set(? 순서, 값) ? 매개변수에 값을 지정합니다.ex) pstmt.setString(1, 값), pstmt.setInt(2, 값)5. SQL 문장을 실행하고 결과를 리턴 SQL 문장 실행 후, 변경된 row 수를 int..
Update 문 실행1. JDBC 드라이버를 로딩 Class.forName(“com.mysql.jdbc.Driver”)2. Connection 객체를 생성 con = DriverManager.getConnection(url, user, pw)3. PreparedStatement 객체 생성, 객체 생성시 SQL 문장 저장 PreparedStaement - SQL문을 데이터베이스에 보내기위한 객체입니다.pstmt = con.preparedStatement(“SQL 문장”)4. pstmt.set(? 순서, 값) ? 매개변수에 값을 지정합니다.ex) pstmt.setString(1, 값), pstmt.setInt(2, 값)5. SQL 문장을 실행하고 결과를 리턴 SQL 문장 실행 후, 변경된 row 수를 int..
Insert 문 실행1. JDBC 드라이버를 로딩 Class.forName(“com.mysql.jdbc.Driver”)2. Connection 객체를 생성 con = DriverManager.getConnection(url, user, pw)3. PreparedStatement 객체 생성, 객체 생성시 SQL 문장 저장 PreparedStaement - SQL문을 데이터베이스에 보내기위한 객체입니다.pstmt = con.preparedStatement(“SQL 문장”)4. pstmt.set(? 순서, 값) ? 매개변수에 값을 지정합니다.ex) pstmt.setString(1, 값), pstmt.setInt(2, 값)5. SQL 문장을 실행하고 결과를 리턴 SQL 문장 실행 후, 변경된 row 수를 int..
Select 문 실행1. JDBC 드라이버를 로딩 Class.forName(“com.mysql.jdbc.Driver”)2. Connection 객체를 생성 con = DriverManager.getConnection(url, user, pw)3. Statement 객체를 생성 Staement - SQL문을 데이터베이스에 보내기위한 객체입니다.stmt = con.createStatement()4. SQL 문장을 실행 SQL 문장을 실행하고 결과를 ResultSet으로 리턴합니다.stmt.excuteQuery(“SELECT * FROM customers”);5. ResultSet에 저장된 데이터 얻는 방법 ResultSet - SQL 질의에 의해 생성된 테이블을 저장하는 객체입니다.rs = stmt.excu..
- Total
- Today
- Yesterday
- Algorithm
- 잠실맛집
- PreparedStatement
- ArrayList
- keycloak
- jenkins
- 자바
- 송리단길맛집
- 서울카페
- 카프카
- Array
- 티스토리초대장
- 리스트
- Java
- 알고리즘
- 도커
- kafka
- db
- docker
- elastic stack
- 초대장
- Database
- scouter
- JDBC
- 문자열
- 자료구조
- mysql
- spring
- string
- 미사맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |