목록전체 글 (45)
Min's dev-log
패키지 관리도구 컴포저 composer 소스코드가 인터넷에 흩어져 있다보니, 한 번 링크를 잃어버리면 찾기 어려웠다. 버그가 발견되어 수정되었어도, 패키지를 다운로드 받았던 웹 페이지에 접속해보지 않으면 알 수 없다. 더욱이 하나의 소스코드를 다른 소스코드가 활용해서 만들어진 경우가 생기기 시작하면, 한 패키지를 지우거나 버전업하면 다른 패키지가 작동하지 않는 등 흔히 의존성 지옥(Dependency hell)이라고 불리는 고통스러운 상황 ▶▶ 한 곳에서 패키지들을 검색하고 자동으로 패키지의 설치와 버전 관리를 해주며, 심지어는 그 패키지를 작동하기 위한 다른 패키지까지 자동 설치해주는 관리도구가 만들어졌다. 이것이 패키지 관리도구이다.
스프링 2-layred 아키텍처 방식 동작순서 ====== .do 요청전에 서버킨후의 동작 ====== 0. 처음에 서버를 키면 서블릿 컨테이너/톰캣이 구동되고 => 이때 web.xml을 보고 서블릿 컨테이너 구동된다. web.xml은 서블릿 관련 설정이기 때문에 DS 서블릿, 필터, 리스너 관련 설정이 들어간다. contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener web.xml에 설정해둔 위의 코드를 보고 1. 리스너가 제일 먼저 동작하면서 applicationContext.xml을 호출하고 => 이때 xml 실행된다. => 스프링 컨테이너 동작(root 컨테이..

코드를 A+9자리 숫자로 만들어줄건데 코드를 원하는 데이터 테이블의 마지막 행의 id값으로 하되 나머지를 0으로 채울 것 이다. sprinf() 함수를 사용해서 0을 붙일 수 있다. 아래처럼 0이 붙어서 나오게 된다.

1) 에러원인 new를 써서 다운캐스팅 하는것이 아니다. 2) 발생지점 22번 줄 3) 해결방안 instanceof로 체크하고 -> 변수명으로 다운캐스팅을 해야한다.
[NullPointerException] 원인 : 메서드 수행 주체인 객체가 NULL인 상황 (아무것도 없는 NULL이 수행할수없다) sc.nextInt() rand.nextInt(10) car.speedUp() cat.hello() => sc, rand, car처럼 수행 주체인 객체가 있어야하는데 주체가 NULL이되면 안된다 => equals를 쓸때는 NULL체크 로직을 체크해야한다!!! ▼ 예시 코드 class Animal{ String name; String type; String tool; void action() { // 주체가 NULL이되면 안된다 // -> equals를 쓸때는 NULL체크 로직을 체크해야한다.!!! if(this.tool==null) { // 문자열끼리 비교할때는 // NU..

1) 에러 원인 배열의 인덱스 범위를 벗어났기 때문에 발생하는 오류이다. 5칸짜리 배열을 설정해놨는데 현재 for문 도는 범위를 보면 6이다. 2) 발생 지점 31번 라인 3) 해결 방안 30번 라인에 조건식의 등호를 없애야 맞게 돌아간다.

1) 에러원인 Unreachable code : 코드가 그 위치까지 실행이 되지 못할 때 뜨는 오류이다. 39번 줄에서 오류가 발생했다. 다른 코드를 넣어봐도 39번 줄에서 그대로 오류 발생.. 코드가 다른데 오류의 자리는 그대로이다. 코드의 흐름은 위에서 아래로 발생한다. 즉, 지금 코드가 위에서 아래로 내려오지 않는다는 것이다. 2) 발생지점 39번 줄 3) 해결방안 바로 위의 코드를 봐보자. 반복문 while, 무한루프문을 만들 때는 종료 조건을 생각해줘야 한다. 지금 탈출할 수 있는 코드인 break;가 없다. 그래서 무한히 위에서 돌아서 아래로 코드가 도달을 못 하는것이다. break;를 사용해주면 오류가 사라진다.

▷ Client가 요청을 하면 DispatcherServlet이 구동된다. ▷ HandlerMapping(RequestMapping)을 사용해서 요청을 처리할 Controller 객체를 찾는다. ▷ 해당 Controller로 가서 Serviece 인터페이스를 구현한 ServiceImpl가 Dao를 호출하고 jdbcTemplate 또는 MyBatis를 이용해 데이터베이스에 접근해 값을 불러오거나 추정한다. ▷ 결과값을 가지고 Controller로 와서 요청을 처리하고 ModelAndView에 처리 결과인 모델 데이터 값과 가야할 뷰 페이지를 담는다. ▷ ViewResolver를 통해 가야할 곳을 찾는다. ▷ 뷰에 모델에서 받아온 데이터를 세팅한다. ▷ 사용자에게 응답한다. 이런 흐름으로 개발자가 전체적으로..