자바40 [Tomcat] 자바(Java) 웹 애플리케이션을 사용자들에게 서비스해보기 이 포스트는 이전 글 내용을 먼저 학습하고 보면 이해하기 쉽습니다. 1. 이클립스를 상단 메뉴에서 File - Export...를 선택해주자. 2. Web 항목의 WAF file을 선택한 후 Next를 클릭해주자. 3. 톰캣 폴더의 webapps 디렉터리에 'MyApplication.war'라는 파일 이름으로 저장하자. 4. 저장한 war 파일의 경로를 최종 확인하고 Finish를 클릭해서 war 파일을 내보내자. 5. 톰캣_루트_폴더/bin 폴더에서 'Tomcat9.exe'를 실행한다. 6. 톰캣_루트_폴더/webapps 폴더 내에서 (4) 과정을 통해서 내보낸 war 파일의 압축을 풀어주자. 압축을 풀면 'MyApplication' 폴더가 생성되므로 전에 생성한 폴더명과 이름이 같은 폴더가 있다면 미.. 2021. 8. 29. [Tomcat] 톰캣 컨테이너에서 웹 애플리케이션을 만들고 실행해보기(2) 이 포스트는 [Tomcat] 톰캣 컨테이너에서 웹 애플리케이션을 만들고 실행해보기(1) 내용과 이어지지 않습니다. 1. 톰캣_루트_폴더/webapps 디렉토리 내에 'testapp' 폴더를 생성한다.(폴더명은 바꿔도 상관없음) 2. testapp 폴더 내에 'WEB-INF' 폴더를 생성한다. 3. WEB-INF 폴더 내에 'classes', 'lib' 폴더를 각각 생성한다. 4. 톰캣_루트_폴더/webapps/ROOT/WEB-INF 디렉토리로부터 'web.xml' 파일을 복사해서 톰캣_루트_폴더/webapps/testapp/WEB-INF 디렉토리 내에 붙여넣기 해주자. 이번 글에서는 임의의 장소에 위치한 웹 애플리케이션을 'server.xml에 등록해서 실행하는 방법'으로 웹 애플리케이션을 실행해볼 것이.. 2021. 8. 19. [BOJ] 백준 2293번 - 동전 1(with Java) 알고리즘 지난번에 풀었던 [BOJ] 백준 11047번 - 동전 0 문제와는 다르게 욕심쟁이 알고리즘이 아닌 '동적계획법'을 사용해야만 문제가 풀린다. 우선 K번째까지의 경우의 수를 구하는 것이 목표이므로 DP 배열의 크기를 K+1로 잡아주고 dp[0]을 1로 초기화해준다. 0이 아닌 1로 초기화를 해주는 이유는 동전을 아예 사용하지 않는 경우도 경우의 수에 포함된다고 봐야하기 때문이다. 다음으로 이중 for문을 통해서 알고리즘이 수행된다. dp[j]는 첫번째부터 j번째까지의 동전을 사용했을 때 합이 K원이 되도록 만드는 경우의 수이다. 예를 들어서, 동전 각각의 가치가 2원 3원 5원이고 가치의 합이 10원이라고 해보자. 첫번째로 dp[j]는 2원짜리 동전으로 2원부터 10원까지 만들 수 있는 경우의 수.. 2021. 8. 2. [Tomcat] 톰캣 콘솔 로그 한글 깨짐 현상 해결방법 문제점 웹 애플리케이션 실행 테스트를 위해서 톰캣을 실행시키면 로그가 뜨는데 한글이 깨져서 내용을 알 수가 없다. 콘솔의 인코딩 과정에서 문제가 발생해서 그런 것으로 보인다. 해결 방법 1. 톰캣_루트_폴더/conf 디렉토리 내의 'logging.properties' 파일을 열어주자. 2. 붉은색 사각형으로 표시된 부분들을 전부 'EUC-KR'로 바꿔주자 3. 아래와 같이 한글이 안 깨지면 성공 2021. 8. 2. [Tomcat] 톰캣 컨테이너에서 웹 애플리케이션을 만들고 실행해보기(1) 1. 톰캣_루트_폴더/webapps 디렉토리 내에 'testapp' 폴더를 생성한다.(폴더명은 바꿔도 상관없음) 2. testapp 폴더 내에 'WEB-INF' 폴더를 생성한다. 3. WEB-INF 폴더 내에 'classes', 'lib' 폴더를 각각 생성한다. 4. 톰캣_루트_폴더/webapps/ROOT/WEB-INF 디렉토리로부터 'web.xml' 파일을 복사해서 톰캣_루트_폴더/webapps/testapp/WEB-INF 디렉토리 내에 붙여넣기 해주자. 웹 애플리케이션은 자바 애플리케이션과 달리 단독으로 실행되지 못하고 톰캣과 같은 JSP 컨테이너를 통해서만 실행된다. 웹 애플리케이션을 실행하는 방법은 2가지가 있다. 'webapps 디렉토리 내에 웹 애플리케이션을 저장해서 톰캣을 실행하면 톰캣이 웹.. 2021. 8. 2. [BOJ] 백준 11047번 - 동전 0(with Java) 알고리즘 욕심쟁이 알고리즘의 대표적인 문제로 원래는 동적계획법을 사용해야 최적의 해를 도출할 수 있지만, 주어지는 동전이 특이하기 때문에 욕심쟁이 알고리즘을 사용해야만 최적의 해를 도출할 수 있다. 왜 그런지는 추후에 설명하기로 하겠다. K원보다 작거나 같은 경우에 대해서 동전의 값을 빼고 K를 업데이트하는 과정을 K가 0이 될 때까지 반복해주면 풀 수 있다. 문제에서 요구하는 것은 K원을 최소로 만드는 동전의 개수이므로, 횟수를 세기 위한 변수 cnt를 이용해서 K에서 값을 빼줄 때마다 cnt를 1씩 증가시켜주면 문제에서 요구하는 답을 도출할 수 있다. 소스코드 문제링크 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개.. 2021. 8. 1. [BOJ] 백준 11403번 - 경로 찾기(with Java) 알고리즘 다른 문제들과는 다르게 입력이 인접리스트가 아닌 인접행렬로 주어지는데, 필자는 인접행렬보다 인접리스트로 문제를 푸는 방식이 더 익숙해서 인접행렬을 입력받은 후에 인접리스트로 바꿔주었다. 여태까지 만나본 그래프 문제들은 모두 방향성이 없는 무방향 그래프였는데, 이 문제의 경우에는 방향 그래프를 사용하여 경로를 구하도록 했기 때문에 어렵게 느껴졌다. 아래에 인접리스트와 그래프를 도식화시킨 그림을 나타내보았다. 입력받은 인접행렬을 인접리스트로 바꿔주면 각각의 정점들에 대해서 DFS 알고리즘을 적용하면 된다. 일반적인 DFS 알고리즘은 현재 정점에 대해서 방문했음을 표시해주고, 인접한 정점들에 대해서 방문 여부에 따라 DFS 알고리즘을 재귀적으로 수행한다. 하지만 이 문제는 정점 i가 정점 i에 도착한.. 2021. 7. 25. [Eclipse] The server cannot be started because one or more of the ports are invalid. 문제 원인 이전 포스트에서 톰캣을 설치할 때 'Server Shutdown Port'와 'HTTP/1.1 Connector Port'를 설정해주었는데, 이때 설정해준 포트 번호와 톰캣과 연동된 이클립스에서의 포트 번호가 일치하지 않아서 발생하는 오류이다. 해결 방법 1. 하단의 Servers 탭에서 'Tomcat v9.0 Server at localhost'를 더블 클릭해준다. 2. 아래 그림에서 사각형 내부의 포트 번호가 이전에 설정해준 포트 번호와 일치하는지 확인한다. 3. 포트 번호가 일치하지 않는다면 이전에 설정해준 포트 번호로 바꿔주면, 서버가 잘 동작하는 것을 볼 수 있다. 2021. 7. 20. [Eclipse] Port 8080 required by Tomcat 9.0 Server at localhost is already in use. 문제 원인 서버의 Overview에서 보이는 Ports 항목에서 'Tomcat admin port'와 'HTTP/1.1' 포트 항목을 제대로 설정해주었는데도 아래처럼 오류가 발생하고는 한다. 이 오류는 서버를 종류했음에도 불구하고 특정 PID가 톰캣 서버에 사용되는 포트를 점유하고 있어서 발생하는 것으로 보인다. 해결 방법 1. 시작 메뉴에서 '명령 프롬프트'를 검색하고 실행한다. 2. 현재 포트에 연결된 모든 PID를 보기 위해서 netstat -anop tcp를 입력해보면 서버를 종료했음에도 불구하고 특정 PID에 의해서 톰캣 서버에서 사용하는 포트 번호가 점유되고 있음을 알 수 있다. 3. 해당 PID를 종료시키기 위해서 taskkill /f /pid 'PID 번호'를 입력하면 프로세스가 성공적으로.. 2021. 7. 20. [Tomcat] 이클립스(Eclipse) 환경설정 및 톰캣 연동을 통한 웹 애플리케이션 실습 준비물 : Eclipse IDE for Enterprise Java and Web Developers & Tomcat 9.0 1. 이클립스를 실행하고 상단 메뉴에서 File - New - Other를 통해서 Server 디렉토리 밑의 'Server'를 선택하고 다음으로 넘어가자. 2. 아래 그림처럼 'Tomcat v9.0 Server'를 선택하고 'Finish'를 눌러서 작업을 완료하자. 3. 이클립스와 톰캣이 제대로 동작하는지 확인하기 위해 간단한 JSP 파일을 작성하고 실행해보자. 상단 메뉴에서 File - New - Dynamic Web Project로 접근해서 Project Name을 설정해주고 Target Runtime을 'Apache Tomcat v9.0'으로 설정해주자. 4. 상단 메뉴에서 .. 2021. 7. 20. 이전 1 2 3 4 다음