본문 바로가기

JAVA

(133)
클래스와 객체 클래스의 개념과 특성 클래스는 명세 장치이다.- 여러 유사 객체들이 공통적으로 갖는 속성이나 행위를 기술하는 명세 장치로 볼 수 있다. 클래스의 특성1.클래스는 고유한 이름을 지닌다.- 특정 도메인에서 클래스가 중복될수 없기 때문에 클래스도 다른 클래스와 구별되기 위한 고유한 이름을 갖는다.- 특정 도메인에서 클래스를 추출하여 표현할 때는 이름이 중복되거나 이름이 다른데 의미가 동일한 클래스가 존재해서는 안된다. 예) 고객클래스와 회원클래스 의미가 동일하기때문에 둘 중 하나만 선택 2.클래스는 속성을 지닌다.- 클래스는 의미 있는 정보 저장소 역할을 하기 위해서 속성을 내포한다.- 속성을 상태변수, 멤버 변수, 멤버 데이터 등으로 표현예) 고객 클래스의 속성으로 '아이디', '비밀번호', '이름' 3. ..
소프트웨어 개발 패러다임과 객체지향 소프트웨어 개발 패러다임패러다임은 바라보는 시각, 뷰, 관점. 소프트웨어 개발 페러다임소프트웨어 개발에 대한 시각 소프트웨어 개발 패러다임의 변화로 소프트웨어의 개발 비용, 품질, 유지보수에 많은 변화를 가져왔고 지속적으로 변화를 가져온다. 구조적 방법론, 정보공학 방법론, 객체지향 방법론, 컴포넌트 기반 방법론, 서비스지향 방법론 절차지향 패러다임소프트웨어 개발에 있는 기능중심, 절차중심의 관점에서 개발하는 방식소프트웨어 공학에서는 이를 구조적 개발방식1970년~1980년 초반까지 소프트웨어 개발이 있어서 주류를 이루었던 패러다임소프트웨어 재사용이나 소프트웨어 유지보수에 있어서 많은 한계점 드러남기능 또는 함수 중심으로 소프트웨어를 개발하기 때문에 데이터들을 국지화(Localization)가 되어 있지..
스프링부트 보안 OAuth2 스프링 부트 OAuth2OAuth2는 피보탈, 구글, 아마존, 페이스북, 트위터 등의 회사에서 채택한 공개 표준 명세이다이들 회사는 크레덴셜(클라이언트ID와 비밀키)에 기반한 액세스 토큰(access token)을 발급하는 식으로 서비스 접근 권한을 부여한다. 리소스 오너Resource Owner(사용자)는 어떤 앱이 자신의 계정에 접근하는 행위를 특정 스코프(읽기 또는 쓰기)로 제한한다.인증서버 Authorization Server는 사용자 신원을 검증한 뒤 앱 클라이언트에 인증 토큰을 발행하고, 리소스 서버는 오직 이 인증 토큰을 통해서만 접근할 수 있게끔 리소스를 보호한다.따라서 앱 클라이언트는 반드시 사용자이름, 비밀번호, 토큰으로 인증을 받아야 리소스에 접근할 수 있다.인증과정은 API로 검증해..
스프링 부트 보안 (예제) 스프링 부트 보안 크로스사이트 스크립팅(cross-site scripting), 인증(authorization), 인가(authentication), 보안세션(secure session), 신원확인(identification), 암호화(encryption) 등 여러 전문 분야를 섭렵하며 보안을 적용하기란 쉬운일이 아니다.스프링 시큐리티 개발팀은 각고의 노력 끝에 서비스 메서드에서 전체 웹애플리케이션에 이르기까지 보안을 쉽게 적용할 수 있도록 길을 열었다.스프링 시큐리티 sping security는 AuthentifactionProvider를 중심으로 특화된 UserDetailsService를 제공하며, LDAP, 액티브 디렉터리(Active Directory), 커버로스(Kerberos), PAM, AO..
스프링부트 웹 개발 (샘플) 스프링부트 웹 개발스프링 프레임워크는 웹 기술을 spring-web, spring-webmvc, spring-websocket, spring-webmvc-portlet 모듈로 지원한다.spring-web 모듈은 멀티파트 파일업로드, (서블릿 리스너를 이용한)스프링 컨테이너 초기화, 웹 애플리케이션 컨텍스트 등 무릇 웹이라면 갖춰야 할 공통 요소를 제공한다.spring-mvc 모듈(웹 서버 모듈)은 스프링 MVC(모델-뷰-컨트롤러) 및 웹애플리케이션용 REST 서비스 구현체를 지니고 있다.두 모듈에는 아주 강력한 JSP 태그 라이브러리, 커스텀 바인딩 및 검증, 유연한 모델 전송, 커스텀 핸들러와 뷰 리졸버 등 다 새로운 기능이 포함되어 있다.스프링 MVC의 핵심은 org.springframework.we..
Spring Data JPA Spring Data JPA 스프링 프레임워크를 이용했을 때 얻을 수 잇는 장점 중에 하나는 기존의 다른 프레임워크들과의 통합이 가능하다는 점이다.스프링 프레임워크는 기본적으로 다른 프레임워크들과의 대립이 아닌 융합을 선택했기 때문에 각종 프레임워크들과의 통합을 위한 '어댑터(Adaptor)'들을 지원한다. 따라서 개발의 편의를 도와주는 추가 기능들이 많다. 과거 JDBC에서 ORM(Object Relational Mapping)까지 'Spring Data'라는 하위 프로젝트를 통해 다양한 방식의 개발을 지원하고 있다. Spring Data JPA는 JPA(Java Persistence API)라는 기술을 스프링에서 개발할 수 있도록 돕는 라이브러리이다.이를 이용하면 다양한 데이터 베이스에서 종족적인 S..
도메인 주도 설계(소개) 도메인 주도 설계 도메인주도설계에서의 모델의 유용성1.모델과 핵심 설계는 서로 영향을 주모 구체화된다.2.모델은 모든 팀 구성원이 사용하는 언어의 중추다.3.모델은 지식의 정수만을 뽑아낸 것이다. 소프트웨어의 본질은 해당 소프트웨어의 사용자를 위해 도메인에 관련된 문제를 해결하는 능력에 있다.그밖의 매우 중요하다 할수 있는 기능도 모두 이러한 기본적인 목적을 뒷받침하는데 불과하다.도메인이 복잡하면 이 같은 문제 해결은 유능하고 숙련된 사람의 집중적인 노력이 필요한 어려운 일이 된다.개발자는 업무 지식을 증진하기 위해 도메인 연구에 물두해야 한다. 그뿐만 아니라 모델링 기법을 연마해서 도메인 설계에 통달해야 한다. 예제선박화물의 운송 예약을위한 애플리케이션 Voyage(운항) ------ Cargo(화물)..
JAVA EE 자바는 1996년 초반 1.0버전 출시 이후 급속히 보급되었다.메모리 관리, 포인터 등 복잡한 C/C++ 언어를 대신할 새로운 프로그래밍의 언어를 원하던 시기였기에 타이밍은 좋았다.많은 개발자가 금세 자바 프로그래밍을 시작했고, 이들을 자바로 전환시킬 일등공신은 애플릿(applet)이었다.애플릿은 웹 브라우저에서 별도 프로세스로 실행 가능한 작은 애플리케이션으로 HTML/CSS만으로는 불가능한 일을 웹 사이트에 추가할 수 있었다.(예 실시간 반응하는 그래프나 스트리밍 비디오 피드)인터넷이 빠르게 팽창하면서 정적 웹 페이지는 낡고 따분한 유물로 전략했고 사람들은 더 빠르고 화려한 웹 서핑을 원했다.애플릿을 쓰면 사용자와 대화하면서도 정적인 월드 와이드 웹(WWW)에 유려하고 멋진 효과나 액션을 넣을 수 있..