목록풀스택/자바 공부, 복습 (63)
개발의 시작과 끝
33일차 짝 프로그램 - 자바 게시판 구현 현황 완료 목록 help : 명령어 리스트 list : 게시물 리스트 add : 게시물 추가 detail : 게시물 상세 - 상세보기를 하게 되면 자동으로 조회수도 같이 올라감. delete : 게시물 삭제 modify : 게시물 수정 join : 회원가입 - 중복된 아이디로 가입 불가능 login : 로그인 logout : 로그아웃 - 로그인 확인 여부를 알고싶으면 로그인을 한번 더 호출하면 됨 - 로그아웃도 마찬가지 exit : 게시판 종료
31일차 프레임워크 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조이며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다. 사람들이 라이브러리와 프레임워크를 헷갈려 하는데, 보통 프레임워크라고 하면 클래스와 라이브러리가 합쳐진 형태라고 볼 수 있다. JAVA 개발의 필수 - 스프링 프레임워크 (Spring Framework) 스프링프레임워크란 엔터프라이즈급 애플리케이션 개발에 필요료하는 경량형 프레임워크이다. J2EE에서 제공하는 대부분의 기능을 지원하기 때문에 JAVA개발에 있어서 대표적인 프레임워크로 자리잡고 있으며 JDBC를 비롯하여 iBatis, 하이버네이트, JPA등 DB처리를 위해 널리 사용되는 라이브러리와 연동을 지원하고 있다. JAVA기반의 엔터프라이즈급 애플리케이..
31일차 Maven Maven은 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다. Maven은 중앙 저장소를 통한 자동 의존성 관리를 중앙 저장소는 라이브러리를 공유하는 파일 서버라고 볼 수 있고, 메이븐은 자기 회사만의 중앙 저장소를 구축할 수도 있다. 간단한 설정을 통한 배포 관리가 가능하다. 의존성 관리 도구 소프트웨어 애플리케이션 개발에는 대부분 라이브러리가 필요하다. 언어 차원에서 지원되는 것일 수도 있고, 우리가 사용하기로 한 Sanic 처럼 외부 라이브러리 저장소에 의존하는 것일 수도 있다. 프로젝트가 어떤 외부 라이브러리를 사용하고 있..
30일차 라이브러리 -컴퓨터에서 자주 사용되는 부분(함수)을 프로그램상에 모아 놓은 것이다. - 언제든지 자유롭게 이용할 수 있도록 구성해 놓는 Jar파일이다. ex ) 일상 생활에서 모르는 단어나, 모르는 내용이 나오면 google이든, naver든 검색을한다. 이와 마찬가지로, java에서 모르는 class 내용이 나오면 라이브러리를 검색하도록 되어있다. - 프로그램에서도 필요한것만 가져다 쓸 수 있도록 라이브러리화 해두면 시간+수정이 아끼고 쉽기 때문이다. - 편리함을 위해 만들어진것. JAR ( Java Archive Files ) - 일종의 자바 프로젝트 압축 파일 - ZIP 파일 압축 알고리즘을 기반으로 만들어짐 >> 빵집 ,알집과 같은 ZIP 프로그램과 호환 가능하다.
31일차 절차지향(Procedural Programming)이란? 절차지향 프로그래밍 이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다. 대표적인 절차지향 언어에는 c언어가 있다. 이는 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다. 옛날에는 하드웨어와 소프트웨어의 개발 속도차이가 크지않았다. 하지만 소프트 웨어 언어의 발달과 컴파일러의 발달로 하드웨어가 소프트웨어 의 발달을 따라오지 못하는 상황이 발생하여 객체지향 언어가 등장하게 되었다. 객체지향 프로그래밍은 개발하려는 것을 기능별로 묶어 모듈화 함으로써 하드웨어가 같은 기능을 중복으로 연산하지 않도록하..
31일차 스트래티지 패턴(Strategy Pattern) 알고리즘군을 정의하고 각각을 캡슐화하여 사용할 수 있도록 만든다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. >알고리즘군은 어떤 일을 해야 하는지를 정의해 놓은 것. 즉, 연관성 있는 기능들을 모아놓은 그룹을 말함 >각각의 알고리즘즘을 캡슐화를 시킨다. 캡슐화 한다는 것은 클래스로 만들어서 관리한다는 것 >그리고 그 알고리즘을 그룹들 내에서 서로 바꿀 수 있게 한다는 의미 * 디자인 원칙 - 달라지는 부분을 찾아내고 달라지지 않은 부분으로 부터 분리시켜 캡슐화 한다. - 상속보다 구성을 활용한다("A는 B이다" 보다는 "A에는 B가 있다"가 나을 수 있음) - 구성을 이용하여 시스템을 만들면 유연..
31일차 변수의 종류 선언위치 생성시기(메모리 할당 시기) 지역 변수 클래스 이외의 영역(메서드, 생성자, 초기화블럭) 변수 선언문이 수행 되었을 때 인스턴스변수 클래스 영역 인스턴스가 생성될 때 지역변수 메서드 내에서 선언되며 메서드 내에서만 사용할 수 있는 변수이다. 메서드가 실행될 때 메모리를 할당 받으며 메서드가 끝나면 소멸되어 사용할 수 없게 된다. 인스턴스 변수 인스턴스 변수는 인스턴스가 생성될 때 생성된다. 그렇기 때문에 인스턴스 변수의 값을 읽어오거나 저장하려면 인스턴스를 먼저 생성해야한다. 인스턴스는 각각 다른 값을 가질 수 있으므로, 인스턴스 마다 고유의 값을 가져야 할 때는 인스턴스 변수로 선언한다.
31일차 상속을 사용하는 이유 - 공통적인 부분을 가지고 있는 상위 클래스를 활용하여 하위 클래스는 본인 고유의 상태와 행동을 정의하기 위함이다. - 코드의 확장성, 재사용성이 용이하고 중복된 코드를 상위 클래스로 빼서 코드가 간결해진다. - 결과적으로 유지보수가 쉬워진다 상속 정의 하위 클래스는 상위 클래스의 모든 메소드를 재사용할 수 있고, 재정의를 하여 하위 클래스만의 메소드로 변경 가능하다. 상속(Inheritance)과 구성(Compositon) 상속의 단점 - 상속은 단일 패키지에서 사용해야만 안전하다. - 하위 클래스는 상위 클래스에 많이 의존하게 된다. - 상위 클래스의 코드가 수정되면 하위 클래스의 코드도 수정되어야 하는 경우가 많다. (재정의 메소드) - 확장이라는 목표를 두고 상속을 ..