원지의 개발
728x90
article thumbnail
[자료구조&알고리즘] stack(스택), queue(큐)

스택 (stack)데이터를 일시적으로 저장하기 위한 자료구조후입선출, LIFO(Last In First Out)메서드를 호출하고 실행할 때 프로그램 내부에서 스택 사용arr[0] = bottomarr[n-1] = top스택 만들기필드 & 생성자package chap04_1;public class IntStack { private int max; //스택 용량, 배열 길이 private int ptr; //스택 포인터, 현재 쌓여 있는 데이터의 수(인덱스가 아님) private int[] stk; //스택 본체 //실제로는 본체를 참조하는 배열 변수로 배열 본체는 생성자에서 생성함 //실행 시 예외: stack이 비어있음 public class EmptyIntStackException extends R..

[알고리즘] 유클리드 호제법 (Euclidean algorithm), 약수, 배수

유클리드 호제법 (Euclidean algorithm)두 개의 수가 있을 때, 최대공약수를 구하는 알고리즘소인수분해를 하면 효율적이지 않고, 두 수가 크면 시간 복잡도는 계속 증가하므로 유클리드 호제법 알고리즘을 사용하면 문제를 쉽게 해결 가능함GCD(a, b) = GCD(b, r)r : a mod b (a에서 b를 나눈 나머지)조건: 0 ≤ r a, b 를 서로 나눌 때, r=0 이 되면 그 때 b가 최대공약수나머지가 0이 되는 시점까지 계속해서 동일한 연산을 진행해야 하는데 몇번을 통해서 가능한지 알 수 없기 때문에 재귀형태로 구현해야 함최대공약수 GCDGreat Common Divisor: 가장 큰 공통된 약수1. 반복문int GCD(int a, int b) { while(b != 0) { ..

article thumbnail
[자료구조&알고리즘] 검색(검색 알고리즘, 선형검색, 이진검색)

검색 알고리즘 검색과 키 검색을 할 때 특정 항목에 주목하게 되는데 이를 key라고 함 key: 데이터의 일부 배열에서 검색 용도나 목적, 실행 속도, 자료구조 등을 고려하여 알고리즘 선택해야 함 다음의 알고리즘 활용 1. 선형 검색: 무작위로 늘어놓은 데이터 모임에서 검색 2. 이진 검색: 일정한 규칙으로 늘어놓은 데이터 모임에서 빠른 검색 3. 해시법: 추가, 삭제가 자주 일어나는 데이터 모임에서 빠른 검색 1) 체인법: 같은 해시 값의 데이터를 선형 리스트로 연결 2) 오픈 주소법: 데이터를 위한 해시 값이 충돌할 때 재해시 배열 검색의 종료 조건 검색할 값을 발견하지 못하고 배열의 끝을 지나간 경우 = 검색 실패 검색할 값과 같은 요소를 발견할 경우 = 검색 성공 배열의 요솟수가 n개일 때 조건 ..

article thumbnail
[자료구조&알고리즘] 기본 자료구조(배열, 클래스)

기본 자료구조data structure데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법데이터 단위: 데이터를 구성하는 한 덩어리배열배열의 자료형 구분각 요소의 자료형 = int, a[0]은 int형자료형 = int[5], a는 int[5]형int a = new int[5]; 선언하면 배열 a는 a[0], a[1], a[2], a[3], a[4]로 총 5개의 int형 저장 공간을 차지함배열의 구성 요소는 자동으로 0으로 초기화됨그림 추가배열의 복제배열의 이름.clone();package chap02_1;import java.util.Arrays;public class CloneArray { public static void main(Str..

article thumbnail
[자료구조&알고리즘] 기본 알고리즘(알고리즘, 반복)

기본 알고리즘 문제를 해결하기 위한 것으로 명확하게 정의, 순서가 있는 유한개의 규칙으로 이루어진 집합 용어 순차적(concatenation) 구조 - 여러 문장(프로세스)이 순차적으로 실행되는 구조 선택(select) 구조 - 평가 결과에 따라 흐름을 변경하는 if문 매개변수 - 메서드를 정의할 때 실인수 - 메서드를 호출할 때 연산자(operator) - +, -, 등의 연산 기호 피연산자(operand) - 연산의 대상이 되는 것 최댓값 구하기 package chap01_1; import java.util.Scanner; public class max { public static void main(String[] args) { Scanner scan = new Scanner(System.in); S..

article thumbnail
[Spring Boot + React] 개발환경 연동 (build)
Devops 2023. 3. 30. 07:09

수동 빌드 1. 리액트를 빌드 npm run build 리액트 빌드하는 명령어 serve -s build react를 확인하려고 만든 가짜 서버 2. 빌드 된 파일 확인 build로 생성된 폴더 확인 static 폴더, favicon.ico, index.html 사용 할 예정 build - staitc 폴더 내부 css, js가 알아서 다운그레이드 되어 생성됨 index.html 파일 빌드가 되면 압축되어 하나의 파일로 만들어지며, js, css 파일의 위치 확인 + final project 꿀팁 더보기 final project는 리액트가 아닌 inline 방식으로 템플릿을 만들었기 때문에 빌드를 할 때마다 적용해줘야 함 그래서 리액트의 index.html(빌드될 파일)에 템플릿을 적용할 구문을 적어 빌..

article thumbnail
[Spring Boot] BootMyweb (5) - 자바측 API, Gson, 카카오로그인
Server/Spring boot 2023. 2. 23. 18:24

자바측 API 모든 언어는 API 통신을 위한 라이브러리들이 있음 (예를들어 js에서 비동기 통신을 이용한 카카오, 구글api) 자바에서는 java.net 패키기의 URL클래스, HttpURLConnection클래스 이용하거나 외부라이브러리 HttpClient 이용 js에서 ajax로 하는 것을 java에서는 아래의 방식으로 사용 통신 방법 1. HttpURLConnection 객체 생성 URL url = new URL(요청주소); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 2. 요청 메서드 설정 conn.setRequestMethod("POST"); conn.setDoOutput(true); //상대방 서버로부터 결과를 받아오..

article thumbnail
[Spring Boot] BootMyweb (4) - 세션, redirect, interceptor
Server/Spring boot 2023. 2. 22. 19:03

Connectionsless Protocol 웹 서비스는 HTTP 프로토콜 기반, 요청(request)에 대한 응답(response) 후 관계를 끊음 인증되지 않은 사용자는 모든 페이지에서 인증과정을 거쳐야 하는데 지속적인 인증 수단으로 세션과 쿠키를 사용 session 스프링 MVC의 세션 2가지 public String updatePage(HttpServletRequest request) {...} HtteServletRequest: 파라미터로 HtteServletRequest를 받을 후 getSession()을 세션 얻음 public String MyPage(HttpSession session) {...} Httpsession: 파라미터로 Httpsession을 받아 세션 사용 session 메서드..

article thumbnail
[Spring Boot] BootMyweb (3) - 파일 업로드, 불러오기, selectKey
Server/Spring boot 2023. 2. 21. 18:13

파일 업로드 파일 첨부 기능은 매우 중요 사용자 편의 ▶ 드래그 앤 드롭(JS), 첨부파일의 유효성 검사(server), 파일 전송의 진행률(JS) 스프링 일반적으로 commons-fileupload 이용 (서블릿 3.0 이전, 이후 모두 사용 가능) 서블링 3.0 이상에서부터는 자체적인 파일 업로드 지원 파일럽로드 처리 라이브러리 필요 스프링부트 WAS(웹 어플리케이션 서버)의 버전이 낮거나 WAS가 아닌 환경이라면 추가 라이브러리 필요 내장 tomcat 이용 - 별도의 라이브러리 추가 없이 업로드 사용 가능 [ 스프링부트 ] 일반 업로드 1. application.properties 설정 application.properties ################### 파일업로드 관련 설정 ########..

728x90
250x250