본문 바로가기

Java31

보행자 천국(프로그래머스, Lv 3, Java) 1. 보행자 천국 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/1832 코딩테스트 연습 - 보행자 천국 | 프로그래머스 3 3 [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 6 3 6 [[0, 2, 0, 0, 0, 2], [0, 0, 2, 0, 1, 0], [1, 0, 0, 2, 2, 0]] 2 programmers.co.kr 알고리즘 설명: 왼쪽에서 오른쪽으로 가는 경우와 아래에서 위로 가는 경우, 이 두 가지 경우를 생각하고 풀면 된다. 오른쪽으로 가는 경우의 수를 넣을 배열과 위로 가는 경우의 수를 넣을 배열 선언 0,0은 cityMap 값이 0이기 때문에 이전 값들을 가져와서 더 해주어야 하지만 이전 인덱스는 마이너스인 상황.. 2020. 3. 10.
DB 연동(with Spring JDBC) 1. Application Architecture - 서버와 클라이언트 사이에 TCP라는 프로토콜이 존재하여 커넥션을 만들어주어 통신을 가능하게 해 준다. - 같은 개념으로 서버와 DB사이에도 커넥션을 만들어주어야만 통신이 가능하다. 2. Data Access Layer - 요구되는 라이브러리 JDBC Template (Spring에서 제공되는 클래스): spring-jdbc DataSource (Apache): commons-dbcp JDBC Driver: mysql (mySQL)-connector-java - JDBC Template를 사용하려면 DataSource가 주입되어야 한다. ex) A대학의 DataSource를 만들어서 JDBC Template에 주입하면 A대학 DB에 접근하게 된다. - .. 2020. 3. 9.
저울(프로그래머스, LV 3, Java) 1. 저울 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42886 코딩테스트 연습 - 저울 | 프로그래머스 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 합니다. 이 저울의 양팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같습니다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있습니다. 저울추가 담긴 배열 weight가 매개변수로 주어질 때, 이 추들로 측정할 수 없는 양의 정수 무게 중 최솟값을 return 하도록 solution 함수를 작성해주세요. 예를 들어, 무게가 각 programmers.co.kr 알고리즘 설명: 오름차순으로 정렬 후 인덱스를 차례대로.. 2020. 3. 8.
관점 지향 프로그래밍(AOP, Aspect Oriented Programming) Layer 안에 부가 기능들을 각 각 삽입한 단순 접근의 단점 비즈니스 로직과 로깅 기능을 혼합 관심사의 분리 원칙을 위반 복잡성과 상호 의존성 향상 느슨하게 결합 된 디자인 방지 반복되는 코드로 수정이 어려워진다. Spring AOP - AOP는 부가 기능(Logging, Transaction...)을 메인 프로그램의 비즈니스 로직과 분리 -> Spring Framework가 부가 기능들을 핵심 기능에 적용시켜준다. AOP-Weaving app function 호출(Caller -> Proxy) 횡단 관심사(cross-cutting concern) 실행 (Proxy -> Aspect) app function 호출(Proxt ->Aspect -> Target) app function에서 return(Ta.. 2020. 3. 7.
의존성 주입(Dependency Injection) 객체 의존성 public class PetOwner{ private AnimalType animal; public PetOwner() { this.animal = new Dog(); } } PetOwner 객체는 AnimalType 객체 (이 경우 Dog)에 의존 PetOwner 객체는 AnimalType 객체의 생성을 제어 PetOwner와 AnimalType 객체 사이가 연결됨 AnimalType 객체를 변경하면 PetOwner 객체가 변경 PetOwner와 Dog는 강하게 결합이 되어있다 = tight coupling -> 다른 경우를 적용하려면 소스코드를 바꿔야 하는 상황 (만약 Cat을 animal에 넣으려고 하면 PetOwner 코드를 바꿔줘야 한다. -> 다른 상황마다 코드를 바꿔야되는 상황.. 2020. 3. 5.
JSP(Java Server Pages) JSP란? 동적으로 생성된 Content를 정적 HTML과 함께 사용할 수 있게 해 준다. 동적 페이지는 다른 context 나 조건에 따라 바뀔 수 있다. Servlet vs JSP 서블릿은 데이터 저리 가 좋다. - 데이터 읽기와 체킹, 데이터베이스와 통신, 비즈니스 로직 호출 등 JSP는 프레젠테이션에 좋다. - 요청 결과를 나타내는 HTML 작성 JSP 문서는 자동으로 뒤에서 서블릿화 된다. JSP를 사용하는 이유는 기술이 좋아서가 아니라, 편리성, 생산성, 유지관리성이다. JSP 문법 JSP Expression Scriptlet JSP Declaration JSP Comment JSP Directive JSP Action JSP Directive @page 지시문은 페이지 종속 속성을 정의하는 .. 2020. 3. 5.