탑 문제 설명 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어, 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 레이저 신호는 어떤 탑에서도 수신할 수 없습니다. 송..
문자열 내 마음대로 정렬하기 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 strings n return [sun, ..
ServletContextListener - 웹 어플리케이션이 시작되거나 종료될 때 호출할 메서드를 정의한 인터페이스. - public void contextInitialized(ServletContextEvent sce) : 웹어플리케이션을 초기화할 때 호출 - public void contextDestroyed(ServletContextEvent sce) : 웹 어플리케이션을 종료할 때 호출. 웹 어플리케이션이 시작되고, 종료될 때 특정한 기능을 수행하기 위해서는 아래와 같이 하면 된다. 1. javax.servlet.ServletContextListener 인터페이스를 구현한 클래스를 작성한다. 2. web.xml 파일에 1번에서 작성한 클래스를 등록한다. jdbc.DoDBCPInitListener..
안녕하세요!! SQLD 시험을 합격해놓고 한참동안이나 까먹고 이제서야 합격후기를 작성합니다..ㅠㅠ 일단 합격 인증!! 점수를 보시면 아시겠지만 턱걸이 중에 간신 턱걸이입니다ㅠㅠㅠ 그래도 합격했다는 의미에서 정말 기뻤습니다 ㅎㅎ 저는 올해 1월 21일부터 신입사원으로 입사하여 업무를 배우고 있는 와중이었는데요. 그나마 좀더 여유로운 기간에 자격증 하나 따놓는게 어떨가 해서 도전하게 된것이 SQLD 자격증이었습니다. SQL은 개발자로써 알아두면 좋은 기술이기 때문에 업무 능력과는 상관이 있을지는 모르겠지만 제 자격능력을 시험쳐 보고싶었어요. 하지만 업무를 배워가면서 점점 어려운걸 배워가니까 슬슬 공부시간을 확보하기가 어렵더라구요. 주말에 주로 붙들고 있었고, 출퇴근시간이 1시간정도였는데 초반에는 여유로워서 ..
서블릿이란? - JSP 표준이 나오기 전에 만들어진 표준으로 자바로 웹 어플리케이션을 개발할 수 있도록 만들어진 것 자바 클래스 종류 - 요즘은 프레임워크의 사용으로 개발자가 직접 서블릿을 개발해야하는 경우는 없지만 동작방식을 이해해야할 필요가 있는 웹 개발의 기초중의 기초이다. 서블릿 구현 코드 public class NowServlet extends HttpServlet{ @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } } - 메소드명은 get방식이냐 post방식이냐에 따라 doGet, doPost로 변경하면 된다. 서블릿으로 이용할 클래..
예제 상황 - 동적으로 select 태그와 option 태그를 만들어서 selectbox 만들기 ${option.value} - 태그파일 : dynamic-attributes 속성에 정의되어있는 optionMap이라는 변수명으로 각각의 key와 value에 접근하여 들어온 모든 name 속성이 아닌 속성과 값으로 option 태그를 만들어 select 태그 안에 넣어주는 역할을 한다. - attribute 디렉티브를 보면 name 속성으로 name이라는 변수명을 가지고 select 태그에서 ${name} 값에 해당하는 값을 select 태그의 name 값으로 할당합니다. required 속성이 true이므로 name 속성이 아래 jsp에서 정의되지 않으면 에러가 발생합니다. 나머지는 c:forEach 태..
커스텀 태그 - 스크립트 요소(스크립틀릿, 표현식 등)가 많아질수록 JSP 코드는 복잡해진다. - 커스텀 태그를 이용하여 위 문제점을 해결 - JSTL이 표준 커스텀 태그인데 이처럼 코드의 가독성을 높여주는 방법 - JSP tag 파일을 생성해서 사용할 수 있음. 태그파일에서 사용할 수 있는 디렉티브들 디렉티브 설명 tag JSP 페이지의 page 디렉티브와 동일. 태그바일의 정보를 명시. taglib 태그파일에서 사용할 태그라이브러리를 명시. 사용법은 JSP 페이지와 동일 include JSP 페이지와 마찬가지로 태그 파일에 특정한 파일을 포함시킬 때 사용. attribute 태그 파일을 커스텀 태그로 사용할 때 입력받을 속성을 명시. variable EL 변수로 사용할 변수에 대한 정보 저장. tag..
- include 디렉티브도 액션태그와 마찬가지로 지정한 페이지를 현재 위치에 포함시키는 기능을 제공함. - 하지만 포함하는 방식에 액션태그와의 차이점이 분명히 존재. - 액션태그는 실행흐름이 해당 페이지로 넘어가는 방식 - include 디렉티브는 다른 jsp 내용을 현재위치에 삽입하여 자바파일로 변환한 후 컴파일하고나서 진행되는 방식. - 실행흐름이 다른 jsp 파일로 넘어가는 방식과 컴파일 이후 수행되는 방식의 미묘한 차이점 존재 - include 디렉티브를 통해 다른 JSP에 포함되는 JSP 파일의 경우 일반 JSP 파일과 구분하기 위해서 확장자로 jspf를 사용하는 편. 확장자를 jsp로 사용해도 되긴함. jspf는 JSP Fragment의 약어. jsp 소스조각이란 뜻. 액션태그가 레이아웃의 ..