본문 바로가기

전체 글

[부스트코스] Servlet 이란? 서블릿이란? 자바 웹 어플리케이션의 구성요소 중 동적인 처리를 하는 프로그램의 역할 서블릿을 정의해보면 - 서블릿(servlet)은 WAS에 동작하는 JAVA 클래스이다. - 서블릿은 HttpServlet 클래스를 상속받아야 한다. - 서블릿과 JSP로부터 최상의 결과를 얻으려면, 웹 페이지를 개발할 때 이 두 가지(JSP, 서블릿)를 조화롭게 사용해야 한다. 예를 들어, 웹 페이지를 구성하는 화면(HTML)은 JSP로 표현하고, 복잡한 프로그래밍은 서블릿으로 구현한다. 자바 웹 어플리케이션(Java Web Application) WAS에 설치(deploy)되어 동작하는 어플리케이션 자바 웹 어플리케이션에는 HTML, CSS, 이미지, 자바로 작성된 클래서(Servlet도 포함됨, package, 인터페..
[백준 2580] 스도쿠 (Java) https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 몇 몇 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3 www.acmicpc.net 접근 방식 복잡해 보였지만 백트래킹이라는 큰 틀 안에서 해결 가능했다. 우선 스도쿠 판에서 0인 부분의 좌표를 List로 담았다. 첫번째 ..
[부스트코스] 톰캣(Tomcat) 다운로드 및 설치하기 Apache Tomcat이란? 아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단(Apache Software Foundation, ASF)에서 개발한 세계에서 가장 많이 사용되는 WAS(Web Application Server)입니다. 컴퓨터에 운영체제를 설치해야만 컴퓨터를 사용할 수 있는 것처럼, 자바를 이용하여 작성된 웹 어플리케이션은 WAS가 있어야만 실행할 수 있습니다. 이때 가장 많이 사용되는 WAS가 아파치 톰캣이라고 말할 수 있습니다. 아파치 톰캣은 오픈소스 소프트웨어로써 누구나 무료로 사용할 수 있습니다. 참고로 Tomcat은 '수고양이'를 뜻합니다. 톰과 제리의 톰이 생각나기도 합니다. * WAS란? 웹 애플리케이션 서버는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기..
[백준 2661] 좋은 수열 (Java) https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net 접근 방법 백트래킹 문제였지만 백트래킹 자체는 크게 어렵지 않았다. 만들어 낸 수열이 좋은 수열인지 나쁜 수열인지, 다시 말해 만들어 낸 수열 내에서 인접한 부분이 동일한 부분이 있는지 없는지 분별하는 코드를 구현해야 했다. 길이가 N인 수열에서 인접하면서 동일한 수열이 있는 경우는 동일한 수열의 길이가 최소 1 부터 최대 N/2인 경우 발생한다. 따라서 가장 마지막에 집어넣은 수 기준으로 마지막 1개와 그 ..
[부스트코스] CSS (3/3) Element가 배치되는 방법(CSS layout) 여기서 말하는 Element는 HTML 태그를 말한다. 엘리먼트를 화면에 배치하는 것을 layout 작업이라고도 하고, Rendering과정이라고도 한다. 기본 엘리먼트는 위에서 아래로 배치되는 것이 기본이다. 하지만 네이버를 보면 알 수 있듯이 웹사이트의 배치는 단순히 위에서 아래로 배치되는 것만으로는 부족하다. 웹사이트의 배치는 다양하게 표현 가능해야 하므로, 이를 다양한 방식으로 배치할 수 있도록 다양한 속성을 활용한다. display(bolck, inline, inline-block) 1. display:block diplay 속성이 block이거나 inline-block인 경우 그 엘리먼트는 벽돌을 쌓는 듯이 블록을 가지고 쌓인다. 대부분의 태..
[부스트코스] CSS (2/3) CSS Selector HTML의 요소를 tag, id, html 태그 속성 등을 통해 쉽게 찾아주는 방법이다. element에 style 지정을 위한 3가지 기본 선택자 1. tag로 지정하기 - selector 자리에 해당 태그명을 명시 span { color: red; } 2. id로 지정하기 - #{id 이름} #spantag { color: red; } 3. class로 지정하기 - .{class 이름} .spanClass { color: red; } CSS Selector의 다양한 활용 - id, class 요소 선택자와 함께 활용 - 그룹 선택 (여러 개 셀렉터에 같은 style을 적용해야 한다면) : ','로 구분 - (공백) : 자손 요소 - 자식 선택 (>) : 바로 하위엘리먼트를 가리..
[백준 14889] 스타트와 링크 (Java) https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 접근 방법 백트래킹이라고 생각하고 풀었는데 풀고 보니까 DFS인 것 같다. 백트래킹은 DFS와 유사하게 깊이 우선으로 탐색을 하지만 모든 경우를 탐색하는 DFS와는 달리, 유망하지 않으면 탐색하기도 전에 가지치기를 한다는 차이가 있다. 먼저, 팀이 나누어지는 모든 경우의 수를 확인하기 위해 DFS를 사용하였다. N명이 있을 때 한 팀당 N/2명으로 동일함으로 한 팀에 N/2명이 채워질 때까지 DFS를 통해 멤버들 번호..
[백준 2609] 최대공약수와 최대공배수 (Java) https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를,둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 접근 방법 최대 공약수의 경우 유클리드 호제법을 적용하였다. a와 b의 최대 공약수를 구할 때, a와 b 나눠 나머지가 생기면 b와 그 나머지를 다시 나누고 그렇게 생긴 나머지를 처음 나머지와 그 다음 나머지를 다시 나누고.... 나머지가 없을 때까지 나누는데 이 때 나머지가 없을 때의 나눈 값이 최대공약수가 된다. (자세한 내용은 여기) 최소 공배수는 a와 b를 최대공약수로 나누고 그 값들을 곱한 값이 된다. 즉, 최소 공배수 = 최대 공약수 * (a / 최대 공..