목록분류 전체보기 (282)
Hayden's Archive
* 파일을 편집 전 상태로 되돌리고 싶다면? -> 편집하기 전에 파일을 미리 복사해둠(사본을 통한 관리). 파일과 폴더명 뒤에 편집한 날짜를 붙여줌. -> 파일이 별로 없는 단기, 소규모 프로젝트에서는 합리적. -> 하지만 장기간, 대규모 프로젝트에서는 비효율적. * 사본을 통한 관리의 단점 1) 파일 관리의 어려움 : 파일 편집시 매번 복사하는 건 번거로움, 실수할 가능성, 용량 차지 2) 버전 관리의 어려움 : 어느 파일이 최신인지, 파일의 변경된 지점이 어디인지 파악 어려움 3) 협업의 어려움 : 공유한 파일을 동시에 편집하는 경우 다른 사람의 변경 내용을 내가 지워버릴 수 있음. => Git이 이런 어려운 점들을 해결. * Git : History(변경 이력..
알고리즘 문제 풀이 : https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 � www.acmicpc.net 백준 단계별로 풀어보기 - 문자열 문제 중 가장 낮은 정답 비율을 기록한 문제. 문제 자체가 어렵다기보다는 고려해야 할 예외가 많다. 단어 사이에 들어가있는 공백, 맨 앞에 있는 공백, 맨 뒤에 있는 공백을 모두 고려했고 이클립스에서는 잘만 돌아가는데 백준에서는 틀렸다고 떴다. 4번 정도 고배를 마시고 내가 놓친 예외가 뭐가 있을까 계속 생각해봤다. 내가 미처 한 가..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때� www.acmicpc.net 내가 작성한 코드 입력받은 문자열을 char 배열로 바꾸고, 반복문을 돌려 기준이 되는 charStr[j] 값을 두고 k번째는 같지 않은데 k+1번째는 같을 경우 그룹 단어에 해당되지 않으므로 break하여 반복문을 깨고 나오도록 하였다. 그룹단어를 식별하기 위해서 boolean 타입의 flag를 따로 두었다. 어떻게 문제는 해결했지만 다소..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= www.acmicpc.net 내가 작성한 코드 String 클래스의 substring() 메소드를 통해 주어진 문자열을 먼저 세개씩 자르고 "dz="와 일치하는지 살펴본다. 그 뒤 문자열을 두개씩 잘라서 나머지 변경된 크로아티아 알파벳과 비교한다. 이 때 "dz="와 "z="는 중복으로 측정될 수 있고, 크로아티아 알파벳을 추려낸 후 남아있는 알파벳의 개수도 합산해야 ..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 www.acmicpc.net 내가 작성한 코드 거의 처음 써보는 3차원 배열. 테스트 케이스의 숫자를 받고 또 그 안으로 들어가서 각각의 횟수와 문자열을 받고 그 횟수에 맞게 문자열을 순차적으로 반복하다 보니 3차원 배열까지 가게 되었다. 문자열에서 순차적으로 인덱스에 접근하기 위해 String 클래스의 charAt() 메소드를 활용하였다. import java.util.Scanner; pub..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 내가 작성한 코드 String으로 입력을 받고 String 클래스의 charAt() 메소드를 활용하여 문자열의 0번째 값을 char형으로 변환시키고 int형으로 캐스팅하면 아스키코드 값을 구할 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String in..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 �� www.acmicpc.net 내가 작성한 코드 먼저 한수가 맞는지 아닌지 boolean 값을 리턴해주는 함수를 작성한다. temp를 10으로 나눈 나머지를 순차적으로 배열에 저장하는데 temp는 10으로 나눈 몫으로 계속해서 갱신해주다가 0이 되었을 때 반복문을 끝낸다. 지표가 되는 변수 index를 활용하여 배열 save를 반복문으로 돌리는데 현재 순서 인덱스값에서 다음 순서 인덱스값을 빼며 공차 ..
3.1은 web.xml을 선택적으로 만들 수 있다.(Generate web.xml deployment desciptor을 선택적으로 체크) web.xml이 없으면 자바 코드에다가 하는데 Annotation으로 한다. 개발자 입장에서는 Annotation 구조로 하는 게 편하다.(주로 SI 업체) 대기업의 관리자, 유지, 보수하는 입장에서는 web.xml로 만들어주는 게 좋다.(주로 SM 업체) 서블릿 annotation에서 load-on-startup 처리 참고 https://dololak.tistory.com/737 [서블릿/JSP] 톰캣(서블릿 컨테이너) 시작시 Servlet 초기화 되도록 설정하기 참고글 [서블릿/JSP] 서블릿의 초기화 과정 및 초기화 방법 [서블릿/JSP] init() 메서드를 ..
MVC(Model-View-Controller) 패턴 : Model(DAO와 VO) & View(JSP) & Controller(Servlet) 서블릿은 앞에서는 화면과 손 잡고, 뒤에서는 DAO와 손 잡는다. 1. 서블릿이 제일 먼저 클라이언트로부터 폼값을 받는다. 2. 폼값을 바탕으로 VO 객체를 생성한다. - 폼값 3개면 VO의 필드 3개, DB 테이블 컬럼 3개. - id로 회원 검색하는 경우 id 하나 밖에 없으니까 이 과정 패스. 경우에 따라 다름. 3. DAO(이 때 DAO는 싱글톤) 리턴 받고 Business Logic을 호출 → DAO가 DB의 데이터를 조작하거나 DB로부터 데이터를 받아온다. - 예: registerMember(vo), getMember(id) - 이에 따라 DAO가 D..
페이지 이동을 네비게이션이라고 함. Web 페이지 이동 1. Forwarding(포워딩. 앞으로 간다. 제일 많이 씀. 거의 90%) 2. Redirect Forwarding 방식 - 요청하고 응답하고, 요청하고 응답하면 첫번째 요청이랑 두번째 요청이 전혀 관련 없는 남남. 이걸 Stateless한 protocol라고 함. - 원래는 요청 2번, 응답 2번 해야 하는 것을 요청 1번, 응답 1번으로 줄일 수 있음. - 포워딩을 하게 되면 응답하지 않고 서버상에서 다이렉트로 이동함. - 그렇게 되면 클라이언트로부터 받은 폼값을 그대로 가져가게 됨. ServletRequest에 저장한 객체도 없어지지 않고 JSP로 넘어가서도 쓸 수 있음. 그리고 나서 응답하면 죽으니까 메모리 효율성 뛰어남. 이 경우에는 H..