Web Dev

45일차 Study

수오니니 2021. 12. 16. 01:13

스터디 주제

- HTTP 개요

- WEB, WAS 구조

- 객체지향의 4가지 특성 재정의

 

 

토의 내용

-HTTP : HTML 문서와 같은 리소스를 가져올 수 있도록 해주는 프로토콜,

          Request, response가 클라이언트와 서버 사이에서 이루어짐

 

-WEB(웹서버) : 정적, HTML - 단순 목적의 사용에 특화

WAS(Web Application Server) : 동적, JSP - 지속적인 DB 연결 송수신 목적의 사용에 특화

 

-객체지향의 4가지 특성

 

1. 추상화

추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다. 
자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 

추상 메소드를 구현하도록 하기 위함

추상클래스(선언, 구현 - 미완성 설계도 / is a) VS 인터페이스(선언만 가능 - 완전 미완성(기본) 설계도 / has a)
- 추상클래스의 단일상속 단점을 보완한게 인터페이스라고 생각

비유 : 스타크래프트에서 체력, 마나, 이동, 공격과 같은 함수를 추상화를 통해 class로 생성 후

저글링, 마린 등 유닛에 적용!

 

2. 캡슐화(은닉화)

객체의 내용 중 숨기고 싶은 부분은 외부에서 접근 할 수 없다.
단지 해당 객체내의 함수에 의해서만 접근 가능 하도록 하는 것이다. 이를 통해서 정보 은닉이 가능해진다. 
앞서 말한 접근제어[public, private, protected]와 같은 내용에 의해서 구현 되어진다. 
접근 권한을 통해 제공되며 원하지 않는[실수] 외부의 접근에 대해 내부의 데이터, 함수를 보호하는 작용
이렇게 함으로써 이들 부분이 프로그램의 다른 부분들에 영향을 제한.

내부에는 private로 감춰놓고 외부에서 조작할 수 있는 명령어만 public으로 공개

private 변수 : 접근제어자를 통해 은닉화(속성)
private를 통해 은닉화된 변수의 get set 메소드(기능)로 사용하는 것을 캡슐화
단, 완벽한 캡슐화는 get set이 아닌 어떤 역할을 하는 지 모르는 이름으로 수정해서 사용하는 것이 완벽한 캡슐화!
=> get, set으로 인해 발생하는 일을 생각해 추상적으로 명명하는 것이 캡슐화에 가까움. 

 

3. 상속


Class의 멤버[데이터]와 함수를 다른 Class에 물려주거나, 물려 받는 것을 말함
이를 통해서
- 코드의 재사용을 증대 시킬 수있다. 같은 기능을 또 구현 할 필요가 없다.
- 좀 더 폭넓게 사용 가능하다. 상속 받은 함수를 추가적으로 데이터와 함수 내용을 변경 가능.
같은 기능을 가진 함수는 그대로 사용 할수있고, 같은 기능의 함수를 다른 이름으로 만들 필요도 없어짐

비유 : 1. 교실청소팀을 상속받아 과학교실청소팀, 음악교실청소팀 등으로 활용. 

        2. IT 전문직이란 부모클래스에서 상속(물려받음)받지만 운전면허, 공인중개사 자격증 도 인터페이스로 장착 가능

           (Youtube 채널 '얄팍한 코딩사전' 비유방법 참고)

 

4. 다형성

4-1. 오버로딩(Overloading)

같은 기능의 함수에 같은 이름을 사용 할 수 있어서 가독성 증가
하나의 함수에 여러 매개변수 가능

탕수육(소스-매개변수) -> 
1. 탕수육(당근)
2. 탕수육(당근, 양파)  
3. 탕수육(당근, 파인애플)

 

4-2. 오버라이딩(Overriding)
상속으로 받은 함수를 그대로 사용하지 않고 새로 만들어서 사용.
코드의 재사용성을 역시 증가시킴

광둥지방 클래스 . 탕수육(메소드) -> 사천지방 클래스 . 탕수육(메소드)

'Web Dev' 카테고리의 다른 글

49일차 Study  (0) 2021.12.21
48일차 Study  (0) 2021.12.20
47일차 Study  (0) 2021.12.18
46일차 Study  (4) 2021.12.16
다시 처음  (0) 2021.12.16