많은 프로그래머들이 클래스 관계 및 설계에 대해서 명확히 이해하지 않고 손가는데로 프로그램을 만들다가 나중에 유지보수에 어려움을 겪는다.(본인도 예외가 아님) 이러한 문제를 극복하는 취지에서 이번 학습이 필요하다고 생각한다. 물론 Flex의 경우 Flex자체의 내부구조를 이해하고 효율적인 사용이 필요하다. 이 부분은 따로 학습해야할 것이다.


[공부할 것]

클래스들 간에 관계설정

출처:http://cafe.naver.com/javasolution/26


윤훈남의 Flex강의중 10.객체지향프로그래밍-클래스 다이어그램 : http://muticd.com/lec/director/viewBody.php?t_Name=Lec_drbook2


[숙제]

1. 클래스의 관계에서 is a, use a, has a 에 대해서 예시와 함께 설명하라.(예시는 3가지 이상)


2. UML에서 클래스 관계

2.1 "의존관계"의 영문, 의미, UML 표기법 설명, AS3 예시

2.2 "연관관계"의 영문, 의미와 2가지 종류에 대한 설명과 UML 표기법 설명, AS3 예시

2.3 "일반화관계"의 영문, 의미와 UML 표기법 설명, AS3 예시

2.3 "실체화관계"의 영문, 의미와 UML 표기법 설명, AS3 예시

2.4 위 관계에 대해 UML을 작성해보자

  (http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML 에서 다운받에 Flex Builder에 설치하고 다 만든 결과물을 스크린샷해서 붙인다)


3. 합성과 상속

3.1 의미를 설명하고 AS3로 예시를 들어라.

3.2 각각의 장단점을 설명하고 예시를 들어라.


4. 인터페이스

4.1 인터페이스의 의미와 AS3에서 일반적으로 통용되는 인터페이스 명명규칙

4.2 AS3는 다중상속을 할 수 없다. 하지만 인터페이스를 이용하면 다중상속의 문제점을 해소시키면서 클래스를 만들 수 있다. 예를 들어 설명하라.

4.3 인터페이스는 클래스간에 결합도를 줄여준다. 예를들어 설명하라.

4.4 ActionScript 3.0에서 부모SWF에서 자식SWF를 로드하여 자식 SWF안에 있는 클래스를 사용할 수 있다. 인터페이스를 이용하면 부모와 자식간에 클래스 공유의 결합도를 줄여줄 수 있는데 그 예를 들어보자.



5. 추상화 클래스(AS3는 이런 개념이 없지만 충분히 활용할 수 있다.)

5.1 추상화 클래스의 의미.

5.2 추상화 클래스를 사용해야하는 이유

5.3 인터페이스를 이용해서 추상화 클래스를 만들고 이 추상화 클래스를 이용한 구체화된 클래스에 대한 예제를 만들라(AS3, UML)


6. 캡슐화(은닉화)

6.1 캡슐화의 의미

6.2 캡슐화가 적절하게 된 클래스와 아닌 클래스에 대한 예시를 들어라.(Array 활용)


7. 다형성

7.1 다형성의 의미

7.2 다형성의 의미를 대변할 수 있는 예시(코드/UML)를 들어라.


8. 절차지향 방식과 객체지향 방식의 차이점(장,단점 포함)을 설명하라.


답은 언제 달릴까요? ^^

글쓴이: 지돌스타(http://blog.jidolstar.com)

POST방식으로 MultiPart 컨텐츠 타입으로 지정하여 데이타를 서버에 올리는 경우가 종종 있다.
가령, 이미지를 BitmapData로 캡쳐해서 ByteArray형태로 만든다음 서버에 전송하기 위해서는 URLLoader를 이용해 URLRequest의 contentType을 "multipart/form-data;"으로 지정해서 전송할 수 있다. 이와 관련되서는 예전에
"[Flex/AIR]BitmapData를 PNG나 JPG로 변환하여 ByteArray로 서버에 전송하는 방법" 제목으로 글을 올린적 있으니 참고바란다.

하지만 Flash Player 10부터 이러한 과정에서 보안이슈에 걸린다. 아래는 Flash Player 10 기준 ActionScript 3.0 메뉴얼에서 URLLoader의 load()에 설명되어 있는 글이다.  

Flash Player 10 이상에서는 multipart Content-Type(예: "multipart/form-data")을 사용하고 POST 본문 내 "content-disposition" 헤더에 "filename" 매개 변수를 지정하여 업로드를 처리하는 경우 POST 작업이 업로드에 적용되는 보안 규칙의 영향을 받을 수 있습니다.

  • POST 작업은 마우스 클릭이나 키 누르기 같은 사용자 동작에 대한 응답으로 수행됩니다.
  • POST 작업이 크로스 도메인인 경우, 즉 POST 대상이 POST 요청을 보내는 SWF 파일과 같은 서버에 없는 경우 대상 서버는 크로스 도메인 액세스를 허용하는 URL 정책 파일을 제공해야 합니다.

또한 multipart Content-Type의 경우 구문이 RFC2046 표준에 따라 유효해야 합니다. 구문이 유효하지 않은 경우 POST 작업은 업로드에 적용되는 보안 규칙의 영향을 받을 수 있습니다.


마우스 클릭이나 키 누르기 같은 사용자 동작에 대한 응답이 있은 직후에 하지 않고 이 기능을 사용하게 되면 "SecurityError: Error #2176 Certain actions, such as those that display a pop-up window, may only be invoked upon user interaction, for example by a mouse click or button press." 에러가 발생한다. 이 메시지는 자바스크립트(Flash가 아닌 외부)에서 Flash 컨텐츠의 FileReference browse() 메소드를 같은 이유의 보안 문제로 호출할 수 없을때와 동일하다. 이와 관련되어서는 다음 글을 참고한다.

[Flash Player 10]FileReference의 변경된 보안정책과 새롭게 추가된 기능에 대한 나의 생각

아무튼, Flash Player 10 으로 업그레이드 되면서 보안문제때문에 걸리는게 한두개가 아니다. 이와 관련되서 명확히 이해할 수 있으면 좋겠다.

글쓴이 : 지돌스타(http://blog.jidolstar.com/)

Flash Player 10에 맞게 제작된 ActionScript 3.0 한글문서 입니다.
참조하세요. ^^

http://help.adobe.com/ko_KR/AS3LCR/Flash_10.0/
http://help.adobe.com/ko_KR/ActionScript/3.0_ProgrammingAS3/


글쓴이 : 지돌스타(http://blog.jidolstar.com/410)

+ Recent posts