자바 리눅스 루프백 아이피를 알아내는 방법
리눅스에서 127.0.0.1로 아이피가 나올땐 NetworkInterface를 이용하면
사용중인 아이피가 루프백인지 알아낼 수 잇는 메소드가 있단다.
https://docs.oracle.com/javase/7/docs/api/java/net/NetworkInterface.html
'IT Study > Java' 카테고리의 다른 글
자바 인터페이스 요약 정리 (0) | 2014.11.25 |
---|---|
스트럿츠 프레임워크 (0) | 2014.11.25 |
재귀 호출 (0) | 2012.10.02 |
자바 인터페이스 요약 정리
자바의 정석 참고
엔지니어..
홍만이 그림을 그려야 하는데 혼자 그리긴 벅차다..
그래서 A사에 맡기려고 한다.
개발자들의 편의를 도와줌..
자바는 다중상속이 안된다..
c++는 다중상속 가능 프로그래머들에게 자유를 주기 위해서 가능하다고 이야기 한다.
아키텍터들은 다중상속이 불필요하다고 이야기 한다.
자바입장에서 다중상속의 효과가 필요하다.
문제의 상황
이름과 주민등록 번호를 저장하는 기능의 클래스가 필요하다.
이 클래스에는 주민등록 번호를 기반으로 사람의 이름을 찾는 기능이 포함되어야 한다.
(어떤 기능의 일부가 필요하다.)
주민등록번호와 이름의 저장 void addPersonalInfo(String perNum, String name)
A 사에게 요구..
주민등록번호를 이용한 검색 String searchName(String Name)
놀수는 없으므로 뭔가를 해야겠다고 생각..
클래스를 하나 정의해야 겠다. 그리고 A사에는 이 클래스를 상속해서 기능을 완성해 달라고 요구하고, 난 이 클래스를 기준으로 프로젝트를 진행해야 겠다.
홍만군의 결과물 ------------------------------------- A사의 결과물
PersonalNumberStorage Class(다리 역활)
인터페이스의 정의란 매우 중요한것이다.
인터페이스는 상속한다고 하지 않고 구현한다고 한다.
여러개를 상속가능하다..
인터페이스 내에도 변수선언이 가능.. 무조건 public static final로 선언이
되므로 이 둘은 완전히 동일한 의미를 갖는다.
ex )
public class week
{
public static final int MON = 1;
public static final int TUE = 2;
public static final int WED = 3;
public static final int THU = 4;
public static final int FRI = 5;
public static final int SAT = 6;
public static final int SUN = 7;
}
위의 예제를 밑에처럼 줄여주는게 인터페이스의 기능이다.
public interface Week
{
int MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6, SUN=7;
}
enum = 열거형 , 어려울 수도 있으므로 Class 부록으로 빼버림... 자바 5.0에서 추가된 것..
자바 interface의 또 다른 가치
Upper가 비어있어도 주소를 참조할 수 있다..
구현한다고 표현만 해둬라.. Marker의 역할.. 이런 경우
인터페이스의 이름은 ~able로 끝나는 것이 보통이다.(표준)
실제로는 인터페이스를 통해서 다중 상속을 하는 것 같이 표현이 되고 있다.
'IT Study > Java' 카테고리의 다른 글
자바 리눅스 루프백 아이피를 알아내는 방법 (0) | 2014.11.28 |
---|---|
스트럿츠 프레임워크 (0) | 2014.11.25 |
재귀 호출 (0) | 2012.10.02 |
스트럿츠 프레임워크
■ 우리가 애플리케이션을 개발하기 위해서는 실제 업무 처리를 위한 비즈니스 로직과 화면을 처리하기 위한 프레젠테이션 로직을 구현해야 한다. ■ 초창기 웹 애플리케이션은 비즈니스 로직과 프레젠테이션 로직이 뒤섞여 있는 경우가 많았다. ■ 이런식의 접근 방법은 생산성 측면에서는 효율적이라 볼 수 있지만 프로그램이 조금만 복잡해지면 프로그램의 가독성이 떨어질 뿐만 아니라, 유지보수나 확장성에 문제가 많을 수 있다. ■ 또한 뷰 영역은 개발자 보다는 디자이너의 몫이 큰 영역인데도 불구하고 모델 영역에 포함되어야 할 비즈니스 코드가 뷰 영역에 기술하게 되어 디자이너와 개발자 사이의 잦은 충돌이 발생하기도 한다. ■ 이러한 단점 때문에 새롭게 등장한 것이 MVC 패턴이다. ■ MVC 패턴은 모델, 뷰, 컨트롤의 세 영역으로 나누고 이들의 결합도를 최소하하는 것을 모토로 한다. ■ 모델에서는 실제 업무를 처리하는 비즈니스 로직에만 집중하고 뷰 영역에서는 화면을 처리하는 부분에만 집중하면 컨트롤 영역에서 모델과 뷰 간의 흐름을 제어하는 역할을 수행한다. ■ MVC 모델의 가장 중요한 장점 중의 하나가 비즈니스 로직과 프레젠테이션 로직의 분리다.
1.2 스트럿츠 프레임워크 ■ 프레임워크는 동일한 형태의 개발을 위해 이미 만들어진 애플리케이션 모델과 개발에 도움이 되는 API의 집합을 말하는데 MVC패턴을 지원하는 대표적인 프레임워크로는 스트럿츠와 스프링이 있다. ■ 스트럿츠는 MVC의 기본개념을 따르고 있으므로 사용자에게 보여질 페이지인 뷰와 데이터를 처리하는 모델과 이들 상호간의 흐름을 제어하는 컨트롤을 철저히 분리하는 것이다.
|
'IT Study > Java' 카테고리의 다른 글
자바 리눅스 루프백 아이피를 알아내는 방법 (0) | 2014.11.28 |
---|---|
자바 인터페이스 요약 정리 (0) | 2014.11.25 |
재귀 호출 (0) | 2012.10.02 |
재귀 호출
재귀 메소드의 활용.
1. 재귀적 사고는 복잡한 문제를 간결하게 해결하는 열쇠가 된다.
2. 수백 줄 이상의 코드가 요구되는 문제를 불과 수십 줄의 코드로 해결할 수 있다.
재귀 메소드를 활용하기 위한 주의사항.
1. 재귀의 연결 고리를 끊기 위한 조건 검사의 위치가 적절해야 한다.
2. 재귀의 연결 고리를 끊기 위한 조건 검사가 true가 되도록 적절한 연산이 이뤄져야 한다.
-- 재귀 메소드 정의 --
public class Reculfactorial {
public static void main(String[] args) {
System.out.println("3 factorial : " + factorial(3));
System.out.println("12 factorial : " + factorial(12));
}
public static int factorial(int n)
{
if(n==1)
return 1;
else
return n*factorial(n-1);
}
}
수학적 방식의 팩토리얼
5! = 5*4*3*2*1 == 5! = 5 * 4!
4! = 4*3*2*1 == 4! = 4 * 3!
3! = 3*2*1 == 3! = 3 * 2!
2! = 2*1 == 2! = 2 * 1!
1! = 1 = = 1! = 1
-- 잘못된 재귀 메소드의 정의의 예 --
public class InfRecul {
public static void main(String[] args) {
showHi(3);
}
public static void showHi(int cnt)
{
System.out.println("Hi~ ");
showHi(cnt--); //후감소이고 출력후 계속 3으로 초기화 되므로 에러;
if(cnt==1)
return;
}
}
'IT Study > Java' 카테고리의 다른 글
자바 리눅스 루프백 아이피를 알아내는 방법 (0) | 2014.11.28 |
---|---|
자바 인터페이스 요약 정리 (0) | 2014.11.25 |
스트럿츠 프레임워크 (0) | 2014.11.25 |