본문 바로가기

Computer Science

(252)
List, Map, Set 사용 하는 법 List,Set,Map의 Class중 어떤것을 쓸것인지 판단할수 있도록 표로 정리해 보았다. 용어 List : 중복을 허용하고, index를 통한 접근을 한다. index가 부족하게 되면 메모리를 새로 할당하여 복사하여 구성하게 된다. Set : 집합(수학), 집합은 중복을 허용하지 않고 교집합/합집합/차집합등을 지원한다.(And(교집합), OR(합집합), XOR (Not Or)등을 지원함) Hash : Hash Function을 말하며 고유한 Key값(Unique Key)을 주면 고유한 값을 Return한다(중복안됨). Hash연산은 다방면으로 사용되어지고 있다. Linked : Array의 전/후의 값이 서로 Link[양방향연결고리]되어 있어 계속늘어날 수 있으나, 중간검색이 되지 않아 검색속도가 느..
Java EE와 Servlet/JSP의 관계와 WAS 개념 정리 Java EE와 Servelet/JSP Java EE는 Java Enterprise Edition을 의미하며 Servlet, JSP(Java Server Page)는 Java EE에 포함된 하위 기술들이다. 이 외에도 Java EE에는 기업용 어플리케이션과 클라우드 어플리케이션 개발에 필요한 여러가지 복합적인 기술들이 정의되고 모아져있다. www.oracle.com에서 Java EE 버전 별 기술 사양 버전을 확인할 수 있다. Java EE 7 Technologies 위 그림은 Oracle에서 확인할 수 있는 Java EE 7의 기술 사양 버전이다. Java EE 7의 Servlet 버전은 3.1, JSP 버전은 2.3이다. Java EE가 업그레이드 될 때 마다 하위 기술들도 함께 업그레이드되며 버전이..
분산 시스템 분산 시스템의 소개 시스템 환경 변화 미들웨어의 종류 Overview of JEUS 5 JEUS 개요 JEUS 소개 : JEUS => Java Enterprise User Solution JEUS 특장점 대규모 부하처리 Web서버 지원 성능 및 안정성 보장 가력한 아키택처 분산환경에서 트랜잭션 보장 강력한 관리 기능 JEUS Servlet Engine Load Balancing & Fail-Over 서버의 부하 상태를 체크하여 Dynamic Balancing 동일 Node 내 Engine Fail 시 자제 복구(Auto Restarting) Multi-Node 환경 하에서, 한 Node Fail 시 Backup 노드에서 복구 다양한 세션 클러스터링 별도의 세션 서버를 이용한 방식과 Web Containe..
Was란 무엇인가 WAS는 웹 프로그램(혹은 웹 시스템, 웹 사이트, 웹 서비스 등)을 실행할 수 있는 기초적인 환경을 제공 종류로는 WebLogic, WebShpere, tomcat, Jeus, JBoss 등이 있다. Web Application ? 웹을 기반으로 실행되는 프로그램을 의미. 웹브라우저 1.요청 ↓ 웹서버 2.처리를 요청 ↓ 웹어플리케이션서버 3.처리를 수행 ↓ DB 4.처리를 수행 ↓ 웹어플리케이션 5.서버(처리결과 웹서버로 돌려보낸다) ↓ 웹서버 5.응답 ↓ 웹 브라우저 Web Server 대표적으로 Apache, WebtoB 등이 있다. 웹서버는 말그래도 작성된 html페이지 등을 네트워크망에 종속되지 않고, 웹서비스를 할 수 있도록 어플리케이션이라고 생각하면 간단하다. HTTP를 통해 웹 브라우저에..
왜 final 멤버 변수는 관례적으로 static을 붙이는가 ? 오늘도 기초 정리입니다! 오늘은 자바 개발에서 꽤나 보편적으로 볼 수 있는 코드를 하나 정리해보려고 합니다. 바로 클래스의 private static final 멤버 변수 이야기입니다. 저는 현업에서 클래스 상수나 로그 구현체를 이런 식으로 만드는 것을 자주 보았는데요, 관련한 내용들을 가능한 짧고 간단하게 메모 스타일로 정리해 보겠습니다. 왜 final 변수는 꼭 static 인가 흔히 클래스의 멤버 변수를 상수(final)로 만들고자 할 땐, 클래스 상수(static final)로 만들어주곤 합니다. 사실 이 말 속에 답이 대략 나타나는 것 같은데요^^; 하지만 이참에 자바 기본을 정리해 보죠. final 키워드 final 키워드는 프로그래밍 언어에서 ‘constant’, ‘상수’와 같은 단어와 비교..
final과 static JAVA의 final 과 static을 클래스, 메소드, 변수에 사용할 때의 차이점과 용도에 관한 정리입니다. * final 변수란? 변수를 상수화 시킨다. 즉 한번 값이 결정된 변수의 값은 변경이 불가능하다. * final 클래스란? 클래스를 final로 선언한다면, 이 클래스를 상속하는 것을 허용하지 않겠다는 뜻이다. 대표적으로 String 클래스가 있다. * final 메소드란? 메소드를 final로 선언한다면, 이 메소드의 오버라이딩을 허용하지 않겠다는 뜻이다. 클래스는 상속이 가능하되 해당 메소드는 오버라이딩이 불가능하다. * static 변수란? static 으로 선언된 변수는 메모리 공간에 하나만 존재하며, 어디서나 접근이 가능한 변수이다. 어디서나 접근이 가능하려면 static 변수도 pu..
불변객체란 ? Immutable Object란? 객체 지향 프로그래밍에 있어서 불변객체(immutable object)는 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. 반대 개념으로는 가변(mutable) 객체로 생성 후에도 상태를 변경할 수 있다. 객체 전체가 불변인 것도 있고, C++에서 const 데이터 멤버를 사용하는 경우와 같이 일부 속성만 불변인 것도 있다. 또, 경우에 따라서는 내부에서 사용하는 속성이 변화해도 외부에서 그 객체의 상태가 변하지 않은 것 처럼 보인다면 불변 객체로 보기도 한다. 예를 들어, 비용이 큰 계산의 결과를 캐시하기 위해 메모이제이션(Memoization)을 이용하더라도 그 객체는 여전히 불변하다고 볼 수있다. 불변 객체의 초기 상태는 대개 생성 시에 결정되지만 객체가 실제로 사..
시큐어코딩(3) 필드의 불변성(immutable)은 악의적인 변경뿐만 아니라 부주의로 인한 변경도 방지하여, 입력을 받아들이거나 값을 반환할 때 방어적인 복사가 불필요해진다. 그러나 일부 민감 클래스들은 불변성을 가질 수 없다. 다행히, 비신뢰-코드(untrusted code)는 변경 불가능한 래퍼를 이용하여 가변적(Mutable) 클래스에 읽기전용으로만 엑세스할 수 있다. 부적절한 코드(예제). 이 예는 Mutable 클래스로 구성되어 있는데 내부 객체의 수정을 허용한다. 비신뢰-호출자(untrusted invoker)는 변경자 메서드인 setArray()를 호출하여 객체의 불변성(immutable)을 위반하고 있다. 접근자 메서드 getArray()의 호출을 통해 클래스의 비공개인 내부 상태를 수정할 수 있도록 되어..