원지의 개발
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 ################### 파일업로드 관련 설정 ########..

article thumbnail
[Jquery] BootMyweb (2) - 카테고리 처리, sql join
클라이언트/jQuery 2023. 2. 20. 18:45

BootMyWeb 카테고리 판매자 매니저(Sales Manager) 카테고리는 난이도가 높은 작업 (난이도 최상) 1단 카테고리는 1:N 처리 2, 3단 카테고리는 self join - 트리구조로 self join 카테고리 SQL 1. Product_category 테이블 생성 ## https://taiyakee.tistory.com/82 SELECT @@autocommit; SET AUTOCOMMIT = 0; #해제 CREATE TABLE PRODUCT_CATEGORY( CATEGORY_ID INT PRIMARY KEY AUTO_INCREMENT, GROUP_ID VARCHAR(10), CATEGORY_LV INT, ##1,2,3 CATEGORY_NM VARCHAR(100), ##대분류중분류소분류 CA..

article thumbnail
[Jquery] JavaScript vs JQuery, 사용법
클라이언트/jQuery 2023. 2. 17. 18:21

JavaScript vs JQuery jquery는 단수 함수 암기 싸움 JavaScript JQuery 웹페이지를 동적으로 표현해주는 언어 자바스크립트를 더 간편하게 사용해주는 자바스크립트 라이브러리 경고창, 확인창, drop다운 기능, 탭 기능 높은 생산성 선택자로 한번에 선택 선택자로 선택한 태그를 제어 사용방법 1. 직접 사용 1. http://jquery.com/download/ 에서 제이쿼리 소스 다운로드 2. Download the compressed, production jQuery x.x.x 로 처리된 것을 우클릭 - 다른이름저장 3. 다운로드 후 프로젝트 안의 파일에 넣어줌 https://jquery.com/download/ Download jQuery | jQuery link Down..

article thumbnail
[Spring Boot] RestAPI, 부메랑, @RestController, @RequestBody, CrossOrigin
Server/Spring boot 2023. 2. 16. 17:29

API 확장프로그램 부메랑 설치 크롬 웹 스토어에서 boomerang 확장프로그램 다운 받은 후 사용 quick request 만들어서 사용 MIME Multipurpose Internet Mail Extensions의 약자로 파일 변환을 뜻함 인코딩 : 바이너리 파일에서 텍스트 파일로 변환 디코딩 : 텍스트 파일에서 바이너리 파일로 변환 MIME 형식 : image / gif [파일의 종류 / 파일포맷] RestAPI 기존의 @Controller는 객체 Model에 담아서 뷰에 전달 But, restAPI는 서버간 통신을 위한 Controller @RestController는 return에 처리하는 데이터를 조금 다른 타입으로 처리하는 형식 return에 보내고 싶은 데이터를 담음 객체(데이터)를 반환..

728x90
250x250