분류 전체보기 193

📑 백준[자바]_15649_N과M_백트레킹

백트레킹이란 어떤 노드의 유망성을 판단한 뒤, 해당 노드가 유망하지 않다면 부모 노드(나를 호출한 지점)로 돌아가 다른 자식 노드를 찾는 방법이다. 모든 경우의수를 찾아보지만, 그 중에서도 가능성이 있는 경우의 수만 찾는다. 재귀를 통해 구현한다. 브루트포스와 백트레킹, DFS를 혼동한 경우가 많아서 한 번 정리하고 가겠다. 예를 들어 다음과 같은 문제가 있다고 가정하겠다. "a + b + c = 20을 만족하는 수를 모두 찾으시오.(0

📑 JSP_국비_DAY55

Buisness Logic : 사용자의 요청과 함께 전달된 정보를 가공및 산출하는 부분 Presentation Logic : 가공되어 산출된 정보를 디자인하여 사용자에게 표출하는 부분 Model 1 -> 비즈니스 로직과, 프레젠테이션 로직을 한 문서에 저장하는 웹 개발 패턴 Model 2 -> 비즈니스 로직은 개발자가 Servlet으로 프레젠테이션 로직은 JSP가 담당하며, 각각의 역할을 분할하여 수행한다. MVC(Model View Controller) -> 위의 두 모델의 단점을 보완하고자 등장한 디자인 패턴. 컨트롤러가 사용자의 요청을 받고, 모델과 통신하면서 모델이 가공한 데이터를 받으면 뷰에게 전달하여 뷰가 출력하면서 사용자의 요청에 응답한다. JSP(Java Server Page) ㄴ> jsp..

📑 소스트리와 깃을 사용한 협업

여러 개의 저장소를 서로 연결시켜 상호간의 동기화 가능 서로 다른 사람들이 각각의 저장소에서 작업을 하고 이것을 모아서 하나의 프로젝트를 할 수 있는 즉, 협업의 도구로 깃을 사용할 수 있다. 내부적으로는 브랜치라는 개념이 사용된다. 1. 혼자 작업하기 별도의 작업을 진행할 로컬 디렉토리를 생성한다. 필자는 a라는 폴더를 생성했다. 로컬 저장소로 설정하고자 하는 위에서 생성한 로컬 디렉토리를 소스트리에서 생성하여 git init을 해줘야 한다. 소스트리 실행 -> create -> 탐색을 통해 위에서 생성한 로컬 디렉토리의 경로를 설정하고 생성을 누른다. 생성한 폴더에 테스트 파일로 work.txt를 생성한다. 그러면 소스트리 상에서 변경사항을 감지하고 커밋을 할 수 있는 상황이 되는데 커밋 메시지와 함..

📑 서블릿_국비_DAY54

라이프 사이클 사용자로부터 요청이 들어온다. Tomcat이 이를 인지한다. 요청을 인식하면 컨테이너에 사용자가 요청한 url-mapping이 존재하는지 확인한다. 있으면 호출하고, 없으면 새로 만든다. 특정 서블릿에 대한 첫 요청시에는 컨테이너에 아직 로딩되지 않았다. [Tomcat이 진행] -> 서비스를 실행하는 객체를 만들어서 연결해준다. 생성(new) 초기화(init) 컨테이너 적재 별도의 스레드를 생성하여 할당한다. 이 스레드가 실질적으로 사용자의 요청에 응답한다. 사용자가 요청한 방식에 따라 분기가 일어나는데 이는 선택사항이다. 더보기 자바 (서블릿)파일은 실행되어 WEB-INF폴더 하위에 classes폴더에 생성된다. html파일은 webapp폴더 하위의 생성된다. 실행파일(war)만드는 법 ..

📑 SERVLET_국비_DAY53

[웹 프로그래밍] 서버 : 네트워크에서 서비스를 제공하는 컴퓨터로서 서비스를 제공할 수 있는 프로그램이 설치되어야 한다. 클라이언트 : 네트워크에서 서비스를 제공받는 컴퓨터로서 브라우저가 설치되어야 한다. [HTTP 프로토콜] -> 정적인 정보만 제공하는 특징이 있다. -> 동적인 정보를 제공하는 프로그래밍 필요 -> CGI www, 서비스를 제공하지 위한 통신규약이다. 웹 서비스를 제공하는 Hyper Text Transfer Protocol이다. 웹 서버와 클라이언트는 HTTP를 통해서 통신한다. [CGI(Common Gateway Interface)] 초기 웹 프로그래밍에 사용되었던 기술이다. 프로세스 단위로 실행되어서(요청에 대한 응답이 프로그램 실행) 서버 부하가 심하다. -> 나중에 스레드 단위..

📑 UML_국비_DAY52

전체 프로젝트 상에서 UML을 설계하는 것은 초급 개발자의 역량이 아닙니다. 하지만 그래도 짜여진 UML을 보고 이해는 할 수 있어야 합니다. 소프트웨어 개발 주기 SDLC 분석 사용자가 원하는 시스템의 기능은 무엇인가? (what) 사용자 관점에서 시스템의 요구사항을 수집하는 것 기능, 성능, 인터페이스 요구사항 등이 포함된다. 업무분석이라고도 한다. 사용자의 요구사항과 시스템의 기능이 문서화 산출물 : 요구사항 명세서 설계 어떻게 사용자가 원하는 기능을 제공할 것인가? (how) 요구사항 분석 단계에서 산출된 요구사항들을 설계도면에 옮기는 것 산출물 : 설계 명세서 개발(구현) 프로그래밍과 테스트 실행 개발된 시스템을 사용자들에게 교육하고, 실제 업무에 적용 유지보수 요류, 요구사항 변경 및 기능향상..

📑 정수론

수학에서 정수론은 수의 성질을 탐구하고 공부하는 분야를 뜻합니다. 모든 정수론을 공부하는 것은 비효율적이니 코딩테스트에 자주 등장하는 소수와 호제법 부분을 다루겠습니다. [소수 구하기] - 자기 자신보다 작은 두 수의 곱으로 표현할 수 없는 1보다 작은 자연수 - 1과 자기 자신 이외의 약수가 존재하지 않는 수 [에라토스테네스의 체] 구하고자 하는 소수의 범위만큼 1차원 배열을 생성합니다. 2부터 시작하고 현재 숫자가 지워지지 않을때는 현재 선택된 숫자의 배수에 해당하는 수를 배열에서 끝까지 탐색하면서 지웁니다. 이때 처음으로 선택된 숫자는 지우지 않습니다. 범위의 끝값의 제곱근까지 과정을 반복하고 2번 과정을 반복하고 남아 있는 모든 수를 출력합니다. ex) 1부터 30까지의 수 중 소수를 구하기 1은..

📑 JSP_국비_DAY48

Form데이터를 전송하는 방법 [로그인 과정] [방법 1] 폼 객체(forms)를 통해 폼의 정보를 얻어오는 방법 form태그가 1개인 경우에는 문제 없지만, form태그가 여러 개인 경우 병렬 처리가 어려워 불안정합니다. var f = document.forms[0]; forms는 현재 문서에 존재하는 form정보를 구하는 객체입니다. froms는 문서내의 form정보를 배열로 저장을 합니다. f.action -> 전송대상(where) form의 정보를 전송할 대상을 지정합니다. 생략시 자기 자신의 페이지를 호출합니다. f.method -> 전송방식(how) : GET방식 or POST방식 f.submit() -> 전송함수(함수호출시 괄호 주의!) -> 동작을 안하는데 에러도 내지 않음. 오류수정이 어..

📑 JSP_국비_DAY47

[디지털 시계 만들기] 태그 사이에 값을 넣는 것은 innerHTML속성을 사용합니다. input태그에 값을 적는 것은 value속성을 사용합니다. setTimeout(함수명, 호출주기) : 1회 호출 setInterval(함수명, 호출주기) : 지속적으로 호출 자바스크립트는 ms(1/1000)초 단위를 사용합니다. 더보기 [소스코드] 더보기 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 7..

📑 JDBC 미니프로젝트 2일차

전체적인 기능은 사용자가 할 수 있는 기능(UserDao)과 관리자가 수행하는 기능(AdminDao)으로 구분했습니다. UserDao(Select) 조회기능(Select) selectReserve(reserveJumin) -> 사용자가 입력한 주민번호와 동일한 주민번호가 저장된 예약정보를 불러온다. 주민번호의 입력형식을 정규식으로 검사합니다. 주민번호가 예약리스트에 존재한다면 예약 정보를 보여주고, 아니면 다시 입력하도록 합니다. rooms_userOnly_view사용 selectUserList() -> 사용자가 선택할 수 있도록 현재 예약되지 않은 객실 리스트를 조회한다. rooms_user_view 사용 AdminDao(Select, Insert, Update, Delete) 조회기능 selectAd..

📑 JSP_국비_DAY46

자바스크립트의 개요 기본적인 개념만 정리하고 마지막에 실습 코드를 주석과 함께 첨부할테니 참고해서 이해하시길 바랍니다. html 문서 자체를 관리하는 객체를 document객체라고 합니다. 자바스크립트는 head영역의 script태그에서 사용할 수 있고, body영역에 input태그의 버튼에서도 사용할 수 있습니다. [스크립트 태그] [body영역에 input태그] 자바스크립트의 자료형 자료형 설명 Number 정수와 실수를 구분하지 않습니다. String 문자열("")과 문자('')를 구분하지 않습니다. Date 날짜 데이터를 저장합니다. Boolean 논리형 데이터를 저장합니다. 자바스크립트의 변수 선언 방법 var a; 예약어 var을 사용합니다. let b; 예약어 let을 사용합니다. c = a..

📑 국비_DAY45

JSP를 사용하여 레이아웃 구성하기 큰틀만 만들어 두고, 그 틀에 해당하는 내용은 문서화시킨다. header, aside, content, footer등 레이아웃의 구성요소를 폴더에 문서화하여 사용하면 추후에 유지보수가 용이합니다. 이와 같은 형식으로 문서를 불러온다. html에서는 불가능하고, jsp에서만 지원한다. main_company.jsp -> 전체 레이아웃의 큰 틀 잡기 header.jsp -> 폴더화해서 include로 main_menu폴더내 header영역에 포함시킨다. menu.jsp -> header영역에 표현되므로, 파일을 폴더화해서 include로 header파일에 포함시킨다. 이렇게 영역별로 문서화시켜서 분리하고, include 명령으로 하나의 파일에 문서자체를 포함시키면 원본 파..