자바 백준 1076번 저항

list에 각 String을 저장 한뒤에 indexOf로 몇번째 위치해 있는지 찾아낸다.


'백준 알고리즘 > JAVA' 카테고리의 다른 글

자바 백준 1075번 나누기  (0) 2018.08.05
자바 백준 1057번 토너먼트  (0) 2018.08.05
자바 백준 2010번 플러그  (0) 2018.08.03
자바 백준 1912번 연속합  (0) 2018.08.03
자바 백준 1094번 막대기  (0) 2018.08.03

자바 백준 2010번 플러그

플러그에 다른 플러그를 꼽기 위해서 한개의 자리가 없다고 쳐야한다.


'백준 알고리즘 > JAVA' 카테고리의 다른 글

자바 백준 1057번 토너먼트  (0) 2018.08.05
자바 백준 1076번 저항  (0) 2018.08.04
자바 백준 1912번 연속합  (0) 2018.08.03
자바 백준 1094번 막대기  (0) 2018.08.03
자바 백준 1037번 약수  (0) 2018.08.02

자바 백준 1912번 연속합

너무 어렵게 생각하면 꼬이기 쉬운 문제이다. 

2개의 배열을 만드는데 num[] 배열은 자신이 입력한 값들을 저장하는 배열. result[] 배열은 마주하는 2개의 값의 합을 구하고 비교를 위해 만든 배열이다.

result 배열에 현재의 num값과 한칸 전의 result값을 더하는데 이는 앞에까지 더한 숫자들과 지금 칸에서 더한 숫자를 비교하기 위함이다. 만약 크면 놔두고 작으면 result를 더한값을 backup 시켜주어야 한다. 그 후 전역변수(결과값)과 비교해 크면 결과값을 change 하면 된다.


'백준 알고리즘 > JAVA' 카테고리의 다른 글

자바 백준 1076번 저항  (0) 2018.08.04
자바 백준 2010번 플러그  (0) 2018.08.03
자바 백준 1094번 막대기  (0) 2018.08.03
자바 백준 1037번 약수  (0) 2018.08.02
자바 백준 1085번 직사각형에서 탈출  (0) 2018.08.02

AOP는 aspect-oriented programming의 약자로 관점 지향 프로그래밍을 뜻한다. 즉, JAVA 코드를 바꾸지 않고 밖에서 지켜보겠다는 의미를 가지는 기법을 얘기한다.


하나의 예로 들자면 사용자가 어떤 행동을 하는지 궁금할때 사용자의 로그를 확인 하고 싶어질 것이다. 이렇게 된다면 JAVA코드안에서 사용자의 로그를 확인하는 출력을 하나씩 다 넣어 줘야한다. 이런 것을 간단히, 또한 어떤 클래스에만 적용시키고 싶을 때 이 AOP 기법을 쓴다.


사용하는 방법은 밑에서 알아보고 AOP에 대한 정의에 대해 조금 알아보자.


스프링에서 AOP를 구현하는 방식에는 XML을 이요한 구현과 @Aspect 어노테이션 기반의 구현이 있다. 

AOP와 관련해서 용어가 몇가지 있는데 aspect , advice , jointpoint , pointcut , weaving에 대해 조금씩 알면 되겠다. 자세한 건 실습을 하면서 익히면 더욱 쉽다.




1.Spring의 pom.xml 파일에서 의존 설정을 한다. 의존 설정을 하고 저장을 하면 관련 configuration file들을 자동으로 다운받게 된다.

2. 공통 기능 클래스를 만든다. 공통 기능이라고 하면 로그찍기, 시간재기 등이 있겠다.

3. XML 파일 설정을 한다. xml 파일의 namespaces에 들어가 aop를 체크하면 자동으로 schema를 포함하는 코드가 생성된다.  여기서 bean을 설정하고, aspect에서 logAop(공통 기능 클래스)를 참조하고 pointcut에서 어떤 패키지에 있는 메소드들을 공통 기능을 적용시킬 것인지 설정, around에서 사용할 공통 기능 메소드를 설정하면 끝이 난다.


이것으로 XML을 이용한 AOP 구현이 끝났고 어노테이션을 이용한 AOP 구현에 대해서 알아보겠다.

=========================================================================================================================

어노테이션을 이용한 AOP 구현은 XML을 이용한 AOP 구현에 보다는 최근에 나온 방법이고 더 쉽게 사용가능하다.


자바 백준 1094번 막대기

길이가 64인 막대를 2등분씩 하면서 입력값보다 크면 더해주고 작으면 PASS 더해준 COUNT 를 OUTPUT


자바 백준 1037번 약수


약수의 개수가 홀수 일때는 가장 가운데 있는 값의 곱이 찾는 수가 될것이고 개수가 짝수 일 때는 처음과 맨끝에 있는 값의 곱이 찾는 수가 될것이다.


 Environment 객체는 외부 IP나 외부에서 필요한 값들을 설정하기 위해 사용하는 객체를 말한다. 즉, 설정값들을 관리하기 위해 사용하는것이다.

외부 설정할 값들을 추가 해주고 마지막까지 찾을 때까지 검색한다. 


classpath만 자신이 원하는 설정한 텍스트 파일로 지정을 해주고 addLast 해주면 env.getProperty로 원하는 설정값을 가져올 수 있다. 모든 저장 되있는 설정 값을 처음 부터 끝까지 찾아 주기 때문에 쉽게 사용 가능하다.


다음은 xml에서 bean 설정을 한뒤 Enviroment 객체가 생성 될때 그 값을 인터페이스한 클래스에서 사용해 변수값 설정을 초기에 해주는 방식이다.

======================================================================================================================

프로퍼티 파일을 직접 사용하여 설정하는 법에 대해서 알아보자.





여기서는 xml 파일의 context classpath가 핵심이다. 이외에도 어노테이션을 이용한 설정방법이 있다.

또 설정을 개발환경, 실제배포 환경에 맞는 IP를 설정하기 위한 환경설정 방법도 있다.

https://www.youtube.com/watch?v=9cDHggH0ENA&list=PLieE0qnqO2kTyzAlsvxzoulHVISvO8zA9&index=71

'프로그래밍 > Spring Framework' 카테고리의 다른 글

자바 Spring framework MVC 모델  (0) 2018.08.06
Spring AOP  (0) 2018.08.03
스프링 생명 주기와 범위  (0) 2018.08.01
스프링을 이용한 객체 생성과 조립(DI 설정)  (0) 2018.08.01
Spring 이란?  (0) 2018.07.31


JSP의 전체적인 흐름에 대해서 정리해 보려고 한다. 

  맨 처음에는 사용자(클라이언트)가 화면에서 동작을 하면 FrontController로 들어가게 된다. FrontController는 사용자의 입력을 구분하는 하나의 다리라고 생각하면

  파일은 Servlet으로 만들며 경로를 *.do로 지정해 모든 .do입력들을 받아오게 된다. 



받아온 값들을 GET이나 POST 둘다 actiondo라는 메소드로 연결하여 받아온 url 값을 잘게 잘라 어디의 동작을 받아왔는지 확인 한 후 이벤트를 실행하게 된다.

각각 받아온 값들을 구분 한뒤 FrontController 서블릿이 작업을 직접 처리 하지 않고, 해당 클래스가 처리하도록 하는데 이것이 Command 패턴이 되겠다. 각 Command는 하나 이상의 동작을 수행해기 위해서 하나의 공통된 클래스를 인터페이스하여 사용하면 깔끔하게 사용할 수 있다. 


여러 개의 클래스가 기능 별로 생성 될 것이고 이 클래스들 안에서 이제 진짜 기능을 수행하는 Dao 객체를 만들게 된다.

DAO는 데이터베이스에 접속해서 데이터 추가,삭제,수정 등의 작업을 하는 클래스로서 일반적인 JSP 혹은 Servlet 페이지내에 로직을 함께 기술할 수 도 있지만, 유지보수 및 코드의 모듈화를 위해 별도의 DAO 클래스를 만들어 사용하는 것이 일반적이라고한다.


이렇게 DAO 클래스에서는 DAO 생성자에 ORACLE 데이터베이스에 접근하는 로직을 넣어 모든 클래스 메소드가 사용할 수 있게 하는 것이 편리한 방법이다. 각 메소드들은 Command로부터 받은 pharameter 들을 활용해 사용자가 원하는 데이터를 반환해 준다. 이 때 DTO를 거치는 것도 잊지 않아야 한다. DTO는

DAO클래스를 이용하여 데이터 베이스에서 데이터를 관리할 때 데이터를 일반적인 변수에 할당하여 작업 할 수도 있지만, 해당 데이터의 클래스를 만들어 사용하는 것이 MVC 모델의 가장 기본이기 때문에 MVC모델에서 M(Model)을 담당하고 있는 부분이 되겠다.


 can not find the tag library descriptor for "http://java.sun.com 에러는 jstl과 연관이 있다. jstl을 사용하려면 선언해야 하는 것이기 때문이다. tomcat v6.0과 v7.0에서는 아무런 문제가 없지만 tomcat v8.0부터는 위와 같이 선언할 때 에러가 발생한다. 

 이를 해결하기 위해서는 아래와 같은 파일을 WebContent -> WEB-INF -> lib 파일에 넣어주어야 한다

 파일은 아래에 첨부해 놓겠다.

이제 파일을 넣고 저장을 다시 하면 에러가 사라지게 된다.


jstl.jar

standard.jar



자바 백준 1085번 직사각형에서 탈출


문제만 잘 이해하면 쉽게 풀 수 있는 문제이다.

꼭지점과 w h 좌표의 꼭지점 으로 직사각형을 만들어 그 안에 x y를 놓고 상하좌우 방향으로 직사각형과 거리가 가장 짧은 것을 구하면 되는 문제이다.


'백준 알고리즘 > JAVA' 카테고리의 다른 글

자바 백준 1094번 막대기  (0) 2018.08.03
자바 백준 1037번 약수  (0) 2018.08.02
JAVA 백준 1977번 완전제곱수  (0) 2018.07.29
JAVA 백준 2455번 지능형 기차  (0) 2018.07.25
JAVA 백준 1934번 최소공배수  (0) 2018.07.24

+ Recent posts