λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IPP/SWμΌν•™μŠ΅λ³‘ν–‰ 내뢀평가

[내뢀평가] μ„œλ²„ , μ†ŒμΌ“ , λΉ„λ””μ˜€ 슀트림 : μ„œλ²„ν”„λ‘œκ·Έλž¨ κ΅¬ν˜„

by IworldT 2021. 8. 4.
λ°˜μ‘ν˜•

μΌν•™μŠ΅λ³‘ν–‰μ œλŠ” κ΅­κ°€μ—μ„œ μ§€μ •ν•œ ν•™μŠ΅λͺ¨λ“ˆμ„ μ΄μˆ˜ν•˜λŠ” 것이며, OJT μ‹€μŠ΅μ€ νšŒμ‚¬μ—μ„œ μ‹€μŠ΅κ³Ό ν•¨κ»˜ ν•΄λ‹Ή λͺ¨λ“ˆλ“€μ„ ν•™μŠ΅ν•˜λŠ” 것을 이전 ν¬μŠ€νŒ…μ„ 톡해 μ•ˆλ‚΄ν–ˆμ—ˆλ‹€! 이에따라 μΌν•™μŠ΅λ³‘ν–‰μ œ ν•™μŠ΅κ·Όλ‘œμžλ“€μ€ λͺ¨λ‘ μ΄μˆ˜ν•œ ν•™μŠ΅λͺ¨λ“ˆμ— λŒ€ν•œ 평가λ₯Ό μΉ˜λ€„μ•Ό ν•œλ‹€.

이번 달 ν•™μŠ΅κ³„νšμ— 따라, "μΌν•™μŠ΅λ³‘ν–‰μ˜ 이해", "μ„œλ²„ν”„λ‘œκ·Έλž¨ κ΅¬ν˜„", "μš”κ΅¬μ‚¬ν•­ 확인" λͺ¨λ“ˆ 평가가 μ§„ν–‰λ˜μ—ˆλ‹€.

 

 λ‚΄λΆ€ν‰κ°€ 

OJTλŠ” κΈ°μ—…μ—μ„œ μ§„ν–‰ν•˜λ―€λ‘œ λ‚΄λΆ€ν‰κ°€λ‘œ μ΄λ£¨μ–΄μ§€λŠ”λ°, κ΅μœ‘λ‹΄λ‹Ήμžλ‹˜κ»˜μ„œ μ£Όμ‹œλŠ” 평가지λ₯Ό μž‘μ„±ν•˜λŠ” 것이닀. 평가 λ‚΄μš©μ€ ν•™μŠ΅λͺ¨λ“ˆμ— 따라 거의 μ§€μ •λ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ— 어렡지 μ•Šκ³ , λ°°μ› λ˜ λ‚΄μš© 및 μ‹€μŠ΅ν•œ λ‚΄μš©μ΄κΈ°λ•Œλ¬Έμ— 금방 μ€€λΉ„ν•  수 μžˆλ‹€. 평가방식은 κΈ°μ—…λ§ˆλ‹€ 차이가 μžˆμ„ κ²ƒμœΌλ‘œ μ•Œκ³  μžˆλ‹€. μ‹œν—˜ μ‹œκ°„μ„ μ§€μ •ν•΄μ£ΌλŠ” 곳도 μžˆμ„ 것이고, 미리 문제λ₯Ό μ œκ³΅ν•˜κ³  λ°œν‘œλ₯Ό μ€€λΉ„μ‹œν‚€κ±°λ‚˜, 자료λ₯Ό μ·¨ν•©ν•˜μ—¬ λ³΄κ³ μ„œ ν˜•μ‹μœΌλ‘œ μž‘μ„±ν•˜κ²Œ ν•˜λŠ” 방법도 μžˆμ„ 것이닀.

μ‚¬μ „κ΅μœ‘ μžλ£Œμ— μ„€λͺ…λœ 내뢀평가

 

 μΌν•™μŠ΅λ³‘ν–‰μ˜ 이해

λ§κ·ΈλŒ€λ‘œ μš°λ¦¬κ°€ μ§„ν–‰ν•˜κ³  μžˆλŠ” μΌν•™μŠ΅λ³‘ν–‰μ œλΌλŠ” μ œλ„κ°€ 무엇인지 μ•Œκ³ μžˆλŠλƒλ₯Ό ν‰κ°€ν•˜λŠ” λ¬Έμ œμ˜€λ‹€. κ³„μ•½λ‚΄μš© 및 ν”„λ‘œκ·Έλž¨ λ‚΄μš©μ— λŒ€ν•œ 문제둜 κ΅¬μ„±λ˜μ–΄ μžˆμ–΄ κΈ°μ—…-λ‚˜ κ°„μ˜ 계약이 투λͺ…ν•˜κ³  κ³΅μ •ν•˜κ²Œ 관리될 수 있고, λ‚˜ λ˜ν•œ ν”„λ‘œκ·Έλž¨μ„ 톡해 μ œκ³΅λ°›λŠ” 것이 무엇인지, μ–΄λ–€ 역할을 μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ”μ§€ ν™•μ‹€νžˆ μ•Œ 수 μžˆμ–΄ μ’‹μ•˜λ‹€. 

이 λΆ€λΆ„μ˜ λ¬Έμ œλŠ” 평가 κ·Έ μ΄μƒμœΌλ‘œ, κΈ°μ—…/λ‚˜/학ꡐ(IPP)/κ³ μš©λ…Έλ™λΆ€ 간에 비리(?)λ‚˜ λΉ„λ°€ 없이 ν•œ 근둜자둜써 보μž₯λ°›μŒμ„ 인증할 수 μžˆλŠ” μ˜λ―Έκ°€ μžˆλ‹€λŠ” 생각이 λ“€μ—ˆλ‹€.

 

 μš”ꡬ사항 확인 

μš”κ΅¬μ‚¬ν•­ 개발 ν”„λ‘œμ„ΈμŠ€μ™€ κ·Έ λ‚΄μš©μ— λŒ€ν•œ λ¬Έμ œλ“€μ΄ μΆœμ œλ˜μ—ˆλ‹€. 보톡은 μ „κ³΅μ±…μ΄λ‚˜ μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ κ΅μž¬μ—μ„œ μ‰½κ²Œ 닡을 찾을 수 μžˆλŠ” λ‚΄μš©λ“€μ΄μ—ˆλ‹€. λ‚΄κ°€ μ°Έκ³ ν•œ λ¬Έμ„œλ₯Ό μ†Œκ°œν•˜κ² λ‹€.

 SWEBOK 

https://www.computer.org/education/bodies-of-knowledge/software-engineering/v3

 

Software Engineering Body of Knowledge Version 3 | IEEE Computer Society

 

www.computer.org

 

μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ— λŒ€ν•œ μ •μ˜λ₯Ό 내리고 μ„Έμ„Έν•˜κ²Œ μ„€λͺ…ν•˜κ³  μžˆλŠ” λ¬Έμ„œλ‘œ λ‚΄ λ‹΅μ•ˆμ˜ μΆœμ²˜μ™€ κ·Όκ±°κ°€ λ˜μ–΄μ€„ 것이닀. μ€‘μš”ν•œκ²ƒμ€ 우리의 ν•™μŠ΅λͺ¨λ“ˆμ΄ 이 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ—¬ μ œμž‘λ˜μ—ˆλ‹€λŠ” 것이닀. λ‹€μš΄λ‘œλ“œ μ„œμ‹(이름, 이메일 λ“±)을 μž…λ ₯ν•˜λ©΄ μ΄λ©”μΌλ‘œ λ¬Έμ„œλ₯Ό λ°”λ‘œ λ°œμ†‘ν•΄ μ£Όλ―€λ‘œ κΌ­ μ°Έκ³  ν•΄ 보도둝 ν•˜μž!

μ˜μ–΄λ‘œ λ˜μ–΄μžˆκΈ΄ ν•˜μ§€λ§Œ 해석이 μ–΄λ €μš΄ μˆ˜μ€€μ€ μ•„λ‹ˆλ©°, 일뢀 μ •μ˜ λ¬Έμž₯만 μ°Έκ³ ν•˜μ—¬ λ‹΅μ•ˆμ„ μž‘μ„±ν•˜μ—¬λ„ μ’‹λ‹€.

 

 μ„œλ²„ν”„λ‘œκ·Έλž¨ κ΅¬ν˜„ 

우리 κΈ°μ—…μ—μ„œλŠ” 이뢀뢄에 λŒ€ν•œ λ‹΅μ•ˆμ„ 자료λ₯Ό μ€€λΉ„ν•˜μ—¬ λ°œν‘œλ₯Ό μ§„ν–‰ν•˜λ„λ‘ ν–ˆλ‹€. 

1. μžλ°”μ—μ„œ μ†ŒμΌ“ 톡신에 μ‚¬μš©λ˜λŠ” Socket ν΄λž˜μŠ€μ™€ ServerSocket ν΄λž˜μŠ€κ°€ μžˆλ‹€λ‹€μŒ μ½”λ“œμ˜ 의미λ₯Ό κ΅¬λ‘λ°œν‘œλ‘œ μ„€λͺ… ν•˜λΌ.

  (1) Socket socket = new Socket(“192.168.0.115”, 5050);

  (2) ServerSocket ss = new ServerSocket(5050);

 

λ‚˜λŠ” 였라클 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ—¬ λ°œν‘œμžλ£Œλ₯Ό μ œμž‘ν–ˆλ‹€. 각각 μ •μ˜ν•˜μ—¬ μ„€λͺ…ν•΄λ‘” λ‚΄μš©μ΄λ‹ˆ λ°œν‘œμžλ£Œλ‘œ μ ν•©ν•˜λ‹€.

https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html

 

Socket (Java Platform SE 7 )

Enable/disable OOBINLINE (receipt of TCP urgent data) By default, this option is disabled and TCP urgent data received on a socket is silently discarded. If the user wishes to receive urgent data, then this option must be enabled. When enabled, urgent data

docs.oracle.com

https://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html

 

ServerSocket (Java Platform SE 7 )

Create a server with the specified port, listen backlog, and local IP address to bind to. The bindAddr argument can be used on a multi-homed host for a ServerSocket that will only accept connect requests to one of its addresses. If bindAddr is null, it wil

docs.oracle.com

 

이λ₯Ό μ°Έκ³ ν•˜μ—¬ λ°œν‘œμžλ£Œλ₯Ό μ œμž‘ν•œ λ’€ μ½”λ“œμ˜ 의미λ₯Ό μ„€λͺ…ν•˜λ©΄ 될 것이닀.

 

2. 닀쀑 ν΄λΌμ΄μ–ΈνŠΈμ˜ 접속을 μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ μ„œλ²„ 츑은 λ©€ν‹°νƒœμŠ€ν‚Ή ꡬ쑰둜 μ„€κ³„λ˜μ–΄μ•Ό ν•œλ‹€. λ©€ν‹°νƒœμŠ€ν‚Ή κ΅¬μ‘°λŠ” λ©€ν‹°ν”„λ‘œμ„ΈμŠ€μ™€ λ©€ν‹°μŠ€λ ˆλ“œμ˜ 두 방법이 μžˆλŠ”λ° μ–΄λ–€ 방법이 더 μœ λ¦¬ν•œμ§€ μžμ‹ μ˜ 생각을 λ°œν‘œν•΄λ³΄λΌ.

 

인터넷을 μ„œμΉ­ν•˜λ‹€κ°€ λ°œκ²¬ν•œ 이미지λ₯Ό μ‚¬μš©ν•˜μ˜€λ‹€.

λ©€ν‹°ν”„λ‘œμ„Έμ‹±μ˜ μž₯/단점과 λ©€ν‹°μ“°λ ˆλ”©μ˜ μž₯/단점을 잘 찾아보고, ν‘œλ‘œ λΉ„κ΅ν•˜λŠ” λ“±μ˜ λ°œν‘œμžλ£Œλ₯Ό μ œμž‘ν•˜μ—¬ μ–΄λ–€ 것이 더 μœ λ¦¬ν•œμ§€ μ„€λͺ…ν•˜κ±°λ‚˜, 상황에 따라 더 μœ λ¦¬ν•œ 방식을 κ΅¬λΆ„ν•˜λŠ” μ‹μœΌλ‘œ λ°œν‘œλ₯Ό μ§„ν–‰ν•˜λ©΄ λ˜κ² λ‹€.

 

3. λ“œλ‘ μœΌλ‘œλΆ€ν„° μ „μ†‘λ˜λŠ” λΉ„λ””μ˜€ μŠ€νŠΈλ¦Όμ„ μ—¬λŸ¬ ν΄λΌμ΄μ–ΈνŠΈλ‘œ μ‹€μ‹œκ°„ μ „μ†‘ν•˜λŠ” μ„œλ²„λ₯Ό κ΅¬ν˜„ν•˜κ³ μž ν•œλ‹€. μ„œλ²„μ—λŠ” μ–΄λ–€ μš”μ†Œ 듀이 ν•„μš”ν•œμ§€ λ‚˜λ¦„λŒ€λ‘œ μžμ‹ μ˜ 견해λ₯Ό μ„€λͺ…ν•˜λΌ.

λ‚΄κ°€ μ§‘μ€‘ν•œ 것은 λΉ„λ””μ˜€ 슀트림과 μ‹€μ‹œκ°„ 전솑이닀.

λ¬Όλ‘  λ“œλ‘ μ— μ ν•©ν•œ μ„œλ²„μš”μ†Œλ‚˜ λ˜λŠ” λ‹€μ€‘ν΄λΌμ΄μ–ΈνŠΈμ— λΉ λ₯΄κ³  μ •ν™•ν•œ 톡신을 κ°€λŠ₯ν•˜κ²Œ ν•΄μ£ΌλŠ” μ„œλ²„μš”μ†Œμ— 포컀슀λ₯Ό 맞좰 견해λ₯Ό μ„€λͺ…해도 λ¬΄λ°©ν•˜λ‹€. 견해λ₯Ό μ„€λͺ…ν•˜λŠ” κ²ƒμ΄λ―€λ‘œ, 정닡에 κ°€κΉŒμšΈ 뿐 μ •ν•΄μ Έμžˆμ§€ μ•ŠμœΌλ©° 논리적 μ„€λͺ…λ§Œ κ°€λŠ₯ν•˜λ‹€λ©΄ 쒋은 점수λ₯Ό 받을 수 μžˆμ„ 것이닀.

λΉ„λ””μ˜€λŠ” 일반 νŒŒμΌμ— λΉ„ν•΄ λŒ€μš©λŸ‰μ΄λ―€λ‘œ, μ‹€μ‹œκ°„ 전솑을 ν•˜κΈ°μ—λŠ” 읽기/μ „μ†‘ν•˜κΈ°κ°€ 순차적으둜 이뀄지기 μ–΄λ ΅λ‹€. λ˜ν•œ μ‹€μ‹œκ°„ λΉ„λ””μ˜€ 슀트림이라면 λ”λ”μš± 슀트리밍이 μ’…λ£Œλ  λ•Œ κΉŒμ§€ 기닀릴 μˆ˜λŠ” μ—†μœΌλ―€λ‘œ, μ½μœΌλ©΄μ„œ μ „μ†‘ν•˜λŠ” 것이 κ°€λŠ₯ν•œ λͺ¨λ“ˆμ΄ ν•„μš”ν•  것이닀.

λ‚˜λŠ” Node.js둜 μ„œλ²„λ₯Ό κ°œλ°œν•œλ‹€κ³  κ°€μ •ν•˜μ—¬ ν•„μš”ν•œ μš”μ†Œ(stream)λ₯Ό μ„€λͺ…ν–ˆλ‹€. λ‚΄κ°€ μ°Έκ³ ν•œ λ¬Έμ„œλŠ” μ•„λž˜ Node.js μ‚¬μ΄νŠΈμ΄λ‹€.

https://nodejs.org/api/stream.html

 

Stream | Node.js v16.6.1 Documentation

Source Code: lib/stream.js A stream is an abstract interface for working with streaming data in Node.js. The stream module provides an API for implementing the stream interface. There are many stream objects provided by Node.js. For instance, a request to

nodejs.org

 

이 ν¬μŠ€νŒ…μ΄ μ •λ‹΅μ΄λΌκ±°λ‚˜ λ‚΄ 닡이 ν›Œλ₯­ν–ˆλ‹€λŠ” 것은 μ•„λ‹ˆλ‹ˆ, μ°Έκ³ ν•˜μ—¬ μžμ‹ μ˜ 지식과 견해λ₯Ό μ„€λͺ…ν•΄λ³΄μž! λ‚΄λΆ€ν‰κ°€λŠ” 이처럼 뢀담없이 치룰 수 μžˆλ‹€.

728x90
λ°˜μ‘ν˜•

λŒ“κΈ€