본문 바로가기
반응형

전체 글183

예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 어댑터 패턴(Adapter pattern) 한 클래스의 인터페이스를 클라이언트에서 사용하고자 다른 인터페이스로 변환하는 패턴 서로 관계없는 인터페이스들을 함께 사용할 수 있게 하는 패턴 호출당하는 쪽의 메소드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴 자바 코어 라이브러리의 몇가지 표준 어댑터 예시 java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) 예) 둥근 구멍들에 정사각형 못들을 맞추기 → 둥근 구멍, 정사각형 못, 정사각형 못을 둥근 구멍에 맞춰주는 어댑터, 클라이언트 사용 코드 등이 필요함 프록시 패턴(Proxy Pattern) 프록시 : 대리자, 대변인이라는 뜻 대리자를 사용하.. 2023. 4. 18.
JSP(4) JSP 내장객체JSP페이지가 서블릿에서 변환될때(.class) JSP컨테이너(Tomcat웹서버)가 자동적으 제공- JSP페이지 내에서 제공하는 특수한 레퍼런스(참조) 타입의 변수- 객체 생성 없이 바로 사용할 수 있는 JSP의 객체out : 출력 객체pageContext : JSP 페이지 차체의 Context 제공request : 요청에 관한 정보response : 응답에 관한 정보session : 요청에 관한 Context 제공application : 서블릿 및 외부 환경 정보 Context 제공 Scope의 종류myweb 프로젝트 내에서 페이지들간에 값을 공유하기 위해 사용pageContext : 현재 페이지에서만 유효 (생략시 기본값)request : 부모페이지와 자식페이지에서만 유효session .. 2023. 4. 18.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 SOLID 객체 지향 프로그래밍 및 설계의 다섯가지 기본 원칙 응집도는 높이고, 결합도는 낮춰라 SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 결합도 모듈(클래스) 간의 상호 의존 정도 결합도가 낮으면 모듈 간의 상호 의존성이 줄어들어 객체의 재사용이나 수정, 유지보수가 용이하다. 응집도 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련.. 2023. 4. 17.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 생성자리턴타입이 없는 메소드(void도 없음)개발자가 아무런 생성자도 만들지 않으면 자바는 인자가 없는 기본 생성자를 자동으로 만들어 준다.매개값이 있는 생성자를 하나라도 만든다면 자바는 기본 생성자를 만들어주지 않는다. static 블록클래스가 메모리로 로딩될 때 자동으로 실행계산 작업을 하고나서 그 결과를 static 변수의 초기값으로 주고 싶을 때 사용객체 생성 없이도 사용할 수 있기 때문에 생성자에서 초기화 작업을 하지 않는다. final 키워드클래스에 final → 상속 허용하지 않음변수에 final → 한 번 초기화 되면 값을 변경할 수 없음메소드에 final → 오버라이딩 허용하지 않음 this 키워드지역변수와 속성(객체 변수, 정적 변수)의 이름이 같은 경우 지역 변수가 우선한다.객체 변수.. 2023. 4. 16.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 객체지향의 상속상위 클래스의 특성을 재사용하는 것상위 클래스의 특성을 확장하는 것is a kind of 관계를 만족해야 한다 인터페이스인터페이스 : be able to 코드를 인간의 언어로 번역하면서 읽기 부모타입으로 생성된 객체가 있을 때 부모클래스의 메소드를 호출하더라도 오버라이딩 된 자식클래스의 메소드가 호출되는 이유자바에서는 다형성을 지원하기 위해 가상 함수 테이블(virtual function table)이라는 개념을 사용한다. 부모 클래스와 자식 클래스에서 모두 같은 이름을 가진 메소드가 존재할 경우, 자식 클래스에서 오버라이딩된 메소드의 주소를 가상 함수 테이블에 저장한다. 이렇게 저장된 가상 함수 테이블은 실제 객체의 타입에 따라 적절한 메소드를 호출하기 위해 사용된다. 정적멤버 접근의 정.. 2023. 4. 15.
JSP 실습 - 게시판 만들기 게시판의 글쓰기, 글삭제, 글목록까지 완성 했고 마지막 글수정을 만드는중... 오류가 발생 했다. FK(bbsno) 와 패스워드(passwd)가 일치하면 수정 완료가 되는 방식인데, 패스워드를 잘 써주어도 오류가 난다. [오류 해결 방법] 일단 오류메세지부터 분석했다.패스워드를 맞게 넣어도 일치하지 않는다고 뜬다. 먼저 저 오류메세지를 생성하는 코드로 가서 확인했다.위의 코드에서 cnt는 sql문을 실행 후 몇건의 업데이트가 완료되었는지의 결과값인데, 콘솔창으로 cnt를 혹시나 한번더 확인해 보니 0으로 떴다. 업데이트가 안돼서 update() 메소드로 가서 확인해 보았다.메소드에는 틀린 문법이 없었지만 업데이트가 안되는 것이니 쿼리문 조회가 안되는건가 생각하여 쿼리문의 where 절의 값들부터 콘솔로 .. 2023. 4. 14.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 객체 지향의 4대 특성 캡! 상추다 캡슐화(Encapsulation) : 정보 은닉 상속(Inheritance) : 재사용, 확장, 세분화 (extends) 추상화(Abstraction) : 모델링 다형성(Polymorphism) : 사용 편의 클래스와 객체의 구분 객체: 세상에 존재하는 유일무이한 사물 → 따라서 속성에 값을 가지고 있음 클래스: 분류, 집합, 같은 속성과 기능을 가진 객체를 총칭하는 개념 → 따라서 속성에 값을 가질 수 없다 클래스와 객체의 구분은 개념과 실체로 구분할 수 있다. 예를들어 사람과 김연아가 있을 때 사람은 '개념'이고 김연아는 '실체' 이다. 클래스는 '개념', 객체는 '실체' 이므로 '클래스:객체 = 사람:김연아'의 관계가 성립된다. 사람 줄리엣 = new 사람(); .. 2023. 4. 13.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 기계어의 특징 0과 1의 2진수 형태로 표현됨 수행시간이 빠름 CPU마다 기계어가 다름 어셈블리어 니모닉(Mnemonic)과 기계어의 일대일 매칭 코드표 CPU마다 기계어가 다르기때문에 어셈블리어도 기계어에 따라 다름 어셈블리어를 기계어로 번역해 주는 소프트웨어를 ‘어셈블러’ 라고 함 C언어 수학적 기호 사용 기종이 몇개든 단 하나의 소스파일을 가짐 컴파일러로 소스를 번역하여 목적파일 생성함 컴포넌트 재사용 가능한 독립된 모듈 const == final → 따라서 자바에서는 const 키워드를 사용하지 않음 함수와 메소드의 차이 함수와 메소드는 크게 다른점이 없지만 굳이 차이점을 찾는다면, 함수는 클래스나 객체와 아무 관계없이 존재할 수 있지만 메소드는 반드시 클래스 정의 안에 존재해야 한다는 것이다. .. 2023. 4. 12.
JSP(3) JSP 자바빈즈 (Java Beans)JSP의 표준 액션 태그로 접근할 수 있는 자바 클래스 멤버변수, getter메소드, setter메소드로 이루어져 있음 여러 JSP 페이지에서 사용될 수 있음자바빈즈 생성기본생성자가 반드시 존재해야함멤버변수는 private로 선언해야함getter메소드, setter메소드는 public으로 선언해야함자바빈즈 사용 id : 변수명 → 유일한 값이어야함class : 클래스 명 (패키지까지 적어줘야함)scope : 유효범위Scope 유효범위page - request - session - application 순으로 유효범위가 넓어짐page : 현재 페이지에서만 유효 (생략시 기본값)request : 다른 페이지에서도 공유 가능 (상속관계에서만 사용)session : 다른 페.. 2023. 4. 11.
반응형