728x90 ๋ฐ์ํ [React Native] Navigation์ผ๋ก ํ๋ฉด ์ด๋ํ๊ธฐ (Navigation Between Screens) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋์ ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ์์ ๋ค๋น๊ฒ์ด์ ์ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฐ์ ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ ์ธ์ด๋ TypeScript, ํ๊ฒฝ์ Expo๋ก ์งํ ํ๊ฒ ์ต๋๋ค! Install Native npm install @react-navigation/native @react-navigation/native Native-stack npm install @react-navigation/native @react-navigation/native-stack Safe-area-context expo install react-native-screens react-native-safe-area-context Navigation Initial Setting App.tsx ์ด๊ธฐ .. 2022. 6. 16. [Angular] Custom Directive ๋ง๋ค์ด ์ ์ฉํ๊ธฐ (Create & Adjust a Custom Directive) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ ๋ฒ ๊ธ์ Angular์ ์ด๋ฏธ ๊ตฌํ๋ Built-in ๋๋ ํฐ๋ธ์ ๋ํด์ ์์ ๋ณด์๋๋ฐ์. ์ด๋ฒ ๊ธ์ ์ง์ ์ปค์คํ ํ ๋๋ ํฐ๋ธ๋ฅผ ๋ง๋ค๊ณ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์ ๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Generate Directive ์๋์ ๊ฐ์ด ๋๋ ํฐ๋ธ๋ฅผ ์์ฑํด ์ค๋๋ค. ์ ๋ mouse control์ ๋ฐ๋ผ ์คํ์ผ์ด ๋ฐ๋๋ ๋๋ ํฐ๋ธ๋ฅผ ๋ง๋ค๊ฑฐ๊ธฐ ๋๋ฌธ์ mouseControl์ผ๋ก ์ด๋ฆ ์ง์ด์ฃผ๊ฒ ์ต๋๋ค. ng g d ๋๋ ํฐ๋ธ์ด๋ฆ //or ng generate directive ๋๋ ํฐ๋ธ์ด๋ฆ directive.ts ์๋์ ๊ฐ์ด Directive๊ฐ ์์ฑ ๋ ๊ฑฐ์์. @Directive์ selector๋ก app + ๋๋ ํฐ๋ธ์ด๋ฆ์ผ๋ก ๋ง๋ค์ด์ง๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. import { Directiv.. 2022. 6. 9. [Angular] Directive๋? (feat. Built-in Directive) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋์ HTML ์๋ฆฌ๋จผํธ์ ๋ค์ํ ๋์์ ์ถ๊ฐํ๋ Directive์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Directive๋? ๋จผ์ ์ฌ์ ์ ์๋ฏธ๋ฅผ ๋ณด๋ฉด ์๋์ ๊ฐ์ด '์ง์' ๋ผ๋ ๋ป์ ๊ฐ์ง๊ณ ์์ต๋๋ค. Angular ๊ณต์ ๋ฌธ์์ Directive๋ฅผ ์๋์ ๊ฐ์ด ์๊ฐํฉ๋๋ค. ์ฆ, ๊ฐ๋จํ ๋งํ๋ฉด Directive๋ ์๋ฆฌ๋จผํธ๊ฐ ์ด๋ ํ ๋์์ ํ ์ ์๋๋ก '์ง์' ํ๋ ํด๋์ค ์ ๋๋ค. Directive ์ข ๋ฅ Directive๋ 3๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ต๋๋ค. 1. Components ์ปดํฌ๋ํธ๋ ํ ํ๋ฆฟ์ด ์กด์ฌํ๋ Directive๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ Directive ์ ๋๋ค. (์ปดํฌ๋ํธ๋ ๋์ค์ ๋ฐ๋ก ๊ธ์ ์ ๋ฆฌ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.) 2. Attrubute Directives .. 2022. 6. 2. [Angular] Custom Pipe ๋ง๋ค์ด ์ ์ฉํ๊ธฐ (with. ngStyle) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ ๋ฒ ์๊ฐ์๋ Angular ์์ฒด์ ๋ด์ฅ๋์ด ์๋ Built-in Pipe์ ๋ํด์ ์์ ๋ณด์๋๋ฐ์. (์์ง ์๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋ด์ฃผ์ธ์!) ์ด๋ฒ์๋ ์ง์ Custom Pipe๋ฅผ ๋ง๋ค์ด์ ์ ์ฉํด ๋ณด๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค. Pipe ์์ฑ ์๋ ๋ช ๋ น์ด๋ก Pipe๋ฅผ ๋ง๋ค์ด ์ค๋๋ค. ng g p ํ์ดํ์ด๋ฆ //๋ง์ฝ ํ ์คํธ ํ์ผ ์์ด ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ng g p --skip-tests=true ํ์ดํ์ด๋ฆ ์ ๋ ํ๊ท ๊ฐ์ ๋ฐ๋ผ์ ๋ค๋ฅธ ์์ด ๋ณด์ด๋๋ก ํ๋ AverageColorPipe๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์๋์ ๊ฐ์ด pipe.ts ํ์ผ์ด ๋ง๋ค์ด ์ง๊ฑฐ์์. @Pipe({})๋ฅผ ํตํด์ '|' ๊ธฐํธ ๋ค์ ์ฌ์ฉํ ์ ์๋ pipe ์ด๋ฆ์ ์ ํด ์ค๋๋ค. ๊ทธ๋ฆฌ๊ณค transform ๋ฉ.. 2022. 6. 2. [iOS/UI] UIBezierPath ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ (feat. EasierPath) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ค๋์ ์ง์ ์ํ๋ ๋ชจ์์ ๊ทธ๋ฆด ์ ์๋ UIBezierPath๋ฅผ ๋์ฑ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ EasierPath์ ๋ํด์ ์์ ๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~! UIBezierPath ํ์์ ์ํ๋ ๋ชจ์์ ์ง์ ์ปค์คํ ํด์ ๊ทธ๋ฆด ๋ UIBezierPath๋ฅผ ์์ฃผ ์ฌ์ฉ ํ์๋๋ฐ์. ๋จผ์ UIBezierPath๋ฅผ ์ด์ฉํด์ ํญ์๋ฆฌ ๋ชจ์์ ๊ทธ๋ฆฌ๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค. 1. UIBezierPath ์ธ์คํด์ค๋ฅผ ์์ฑํด ๊ทธ๋ ค์ค๋ค. let bezierPath:UIBezierPath = UIBezierPath() bezierPath.move(to: CGPoint(x: 100, y: 100)) bezierPath.addLine(to: CGPoint(x: 200, y: 100)) bezier.. 2022. 5. 30. [Angular] Pipe๋? (feat. Built-in Pipe) Pipe๋? Angular ๊ณต์ ๋ฌธ์์๋ ์๋์ ๊ฐ์ด ์๊ฐํ๊ณ ์์ต๋๋ค. ์ง๋ ํ๋ฉด "ํด๋์ค๋ฅผ ํ์ดํ๋ก ํ์ํ๊ณ ๊ตฌ์ฑ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๋ฐ์ฝ๋ ์ดํฐ" ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ๋งํ๋ฉด ๋ฌด์จ ๋ง์ธ์ง ์ดํด๊ฐ ์๋์ฃ ? ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง์ ๋๋ฆฌ๋ฉด HTML์์ ๋ฌธ์๋ ์ซ์๋ฅผ ์ํ๋ ๊ฒ์ ๋ง๊ฒ ๋ณํํ ๋ ์ฐ๋ ๊ฒ์ ๋๋ค. ์๋๋ Angular์์ built-in์ผ๋ก ์ ๊ณต๋๋ Pipe API List ์ธ๋ฐ์. ํ๋์ฉ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. 1. ๋ฌธ์ ํ์ดํ ๋จผ์ ๊ฐ์ฅ ์ฌ์ด ๊ฒ๋ถํฐ ๋ฌธ์๋ฅผ ๋ณํ์ํค๋ ํ์ดํ์ ๋๋ค. UpperCasePipe,LowerCasePipe, TitleCasePipe ๋ฑ์ด ์๋๋ฐ ๋ง ๊ทธ๋๋ก ๋ฌธ์๋ฅผ ๋ณํ ์์ผ์ฃผ๋ ๊ฒ์ ๋๋ค. ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ๋ด๊ณ ์ถ์ ๋ฌธ์๋ฅผ '|' ๊ฒ๊ณผ ํจ๊ป ํ์ดํ ์ด๋ฆ์ ์ ์ด์ฃผ์๋ฉด .. 2022. 5. 24. [Angular] ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ํ๋ฉด ๊ณ ์ ํ๊ธฐ (Lock Screen orientation in mobile browser) 1์ฐจ ์๋ ํ๋ฉด๋ง๋ค ์ธ๋ก๋ก ๊ณ ์ ๋๋ ๊ฐ๋ก๋ก ๊ณ ์ ์ด ๋์ผ ํ๋ค๋ ์๊ตฌ์ฌํญ์ ๋ฐ๊ณ iOS์์ ๊ฑฐ์ ์ฝ๋ ํ ์ค๋ง ์ถ๊ฐํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๊ธ๋ฐฉ ๋๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค. ๋ฐ๋ก ๊ตฌ๊ธ๋ง ํ๋๊น MDN Web APIs ๋ฌธ์์ ScreenOrientation.lock()์ด๋ผ๋ ๋ฉ์๋๊ฐ ๊ฒ์๋์๋ค. https://developer.mozilla.org/en-US/docs/Web/API/ScreenOrientation/lock ScreenOrientation.lock() - Web APIs | MDN The lock() property of the ScreenOrientation interface locks the orientation of the containing document to the specified orient.. 2022. 5. 5. [iOS/UI] UIBezierPath ์์ Gradient ์ปฌ๋ฌ๋ก ์ฑ์ฐ๊ธฐ (Fill a UIBezierPath with Gradient Color) ์๋ ํ์ธ์ Foma๐ป ์ ๋๋ค! ์ค๋์ UIBezierPath ์์ Gradient ์ปฌ๋ฌ๋ก ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ TestView ๋ทฐ๋ฅผ ์๋์ ๊ฐ์ด ์ด๊ธฐํ ํด์ค๋๋ค. class TestView: UIView { override init(frame: CGRect) { super.init(frame: frame) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func draw(_ rect: CGRect) { } } UIBezierPath ์ด์ UIBezierPath๋ฅผ draw ๋ฉ์๋ ์์ ๊ทธ๋ ค๋ณด๊ฒ ์ต๋๋ค. ํ์ํ ๊ฒฝ๋ก๋ฅผ ์๋์ ๊ฐ์ด ์์ฑํด ์ค๋๋ค.. 2022. 5. 2. [Network] Port๋? (feat. Protocol) (What is a Port?) Port๋? Port๋ ์ฌ์ ์ ์ธ ์๋ฏธ๋ก "ํญ๊ตฌ"๋ผ๋ ๋ป์ด๋ค. ํญ๊ตฌ๋ ๋ฐฐ๊ฐ ์ ์ฐฉํ๊ณ ์ถ๋ฐํ๋ ๊ณต๊ฐ์ ์๋ฏธํ๋ค. ์ปดํจํฐ ๊ณผํ์์๋ Port๋ ๋น์ทํ ์๋ฏธ๋ก ์ฌ์ฉ๋๋๋ฐ ํน์ ์๋ฒ์ ์ ์ํ๊ธฐ ์ํ ๊ณต๊ฐ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ ํต์ ํ๊ธฐ ์ํ ์ข ๋จ์ ์ญํ ์ ํ๋ค. ํ๋์จ์ด์ ์ธ ์๋ฏธ๋ก๋ ํต์ ์ฅ๋น๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ฐ๊ฒฐ๋จ์ด๊ณ , ์ํํธ์จ์ด์ ์ธ ์๋ฏธ๋ก๋ ๋คํธ์ํฌ ์๋น์ค๋ฅผ ์๋ณํ๋ ๋ ผ๋ฆฌ์ ๋จ์๋ฅผ ์๋ฏธํ๋ค. ์กฐ๊ธ ์ฝ๊ฒ ๋งํ๋ฉด ์ค์ ๋ก ๋ฐฐ๊ฐ ๋ฌผ๊ฑด์ ์ค์ด๋๋ฅด๋ ์ฅ์๋ฅผ ํญ๊ตฌ๊ฐ ์๋ ค์ฃผ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ฌผ๊ฑด ๋์ ๋ฐ์ดํฐ๋ฅผ ๋คํธ์ํฌ ์์์ ์ฃผ๊ณ ๋ฐ๋ ๊ณต๊ฐ๊ณผ๋ ๊ฐ๋ค. Port๊ฐ ํ์ํ ์ด์ ๊ทธ๋ฐ๋ฐ ๋ฌธ๋ "IP์ URL ์ฃผ์๋ง์ผ๋ก ์ถฉ๋ถํ ์ด๋ค ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ง ์๋ ค์ค ์ ์์ง ์์๊น? ๊ตณ์ด Port๋ฒํธ๊น์ง ์ถ๊ฐ์ ์ผ๋ก ๊ฐ์ ธ์ผํ ์ด์ ๋ ๋ฌด์์ผ๊น?".. 2022. 4. 29. [Network] CORS๋? (feat. ๋ณด์,HTTP) (What is a CORS?) CORS๋? CORS๋ Cross-Origin Resource Sharing์ ์ฝ์๋ก ์ง์ญํ๋ฉด "๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ " ์ด๋ค. ์ข ๋ ์ฝ๊ฒ ๋งํ๋ฉด ๋์ผํ ์ถ์ฒ๊ฐ ์๋ ๋ค๋ฅธ ์ถ์ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ ํ์ฉํ๋ ์ ์ฑ ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ์ ์ฑ ์ด ์ ํ์ํ ๊ฒ์ผ๊น? ๊ทธ๊ฑด ๋จผ์ "๋์ผ ์ถ์ฒ ์ ์ฑ "์ ๋ํด์ ์์์ผ ํ๋ค. Same Origin Policy(๋์ผ ์ถ์ฒ ์ ์ฑ ) ๋์ผ ์ถ์ฒ ์ ์ฑ ์ ์น ๋ธ๋ผ์ฐ์ ์์ ๋ณด์์ ๊ฐํํ๊ธฐ ์ํ์ฌ ๋์ผํ ์ถ์ฒ์์๋ง ๋ฆฌ์์ค๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ก ํ๋ ์ ์ฑ ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด "์ถ์ฒ"๋ ๋๋์ฒด ๋ฌด์์ผ๊น? ์ฝ๊ฒ ๋งํ๋ฉด URL ์ฃผ์์ด๋ค. (๋จผ์ URL์ ๊ตฌ์ฑ์์๋ฅผ ๋ชจ๋ฅด๋ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋จผ์ ์ฝ๊ณ ์ค๊ธธ ๋ฐ๋๋ค.) ํ์ง๋ง "๋์ผํ ์ถ์ฒ"๋ ์ ํํ ๋๊ฐ์ URL์ ์๋ฏธํ๋ ๊ฒ์ ์๋๋ค. ๋์ผํ.. 2022. 4. 27. [Network] URL ๊ตฌ์ฑ ์์ (The components of a URL) URL URL์ Uniform Resource Locator์ ์ฝ์๋ก ์น ์ฃผ์๋ฅผ ๋ปํ๋ฉฐ ๋คํธ์ํฌ ์์์ ๋ฆฌ์์ค๊ฐ ์ด๋์๋์ง ์๋ ค์ฃผ๊ธฐ ์ํ ๊ท์น์ด๋ค. URL์ ๊ตฌ์ฑ ์์ ์๋๋ ๋ค์ด๋ฒ ์นํฐ์์ ์ ์ ํ ํ์ด์ง URL์ด๋ค. https://comic.naver.com/webtoon/list?titleId=183559&weekday=mon ์ ์ ํ ์์ ์ ๋ชจ๋ ๊ฒ์ด์๋ ์๋ ๋ฅผ ์ซ์ ํ์ ๋ค์ด์จ ์๋ ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฐ ์๋ ์ ์ํํ๋ ํ comic.naver.com ํด๋น URL์ https + comic.naver.com + (:443) + /webtoon/list + ?titleId=183559&weekday=mon ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. 1. Protocol(ํ๋กํ ์ฝ) ์ URL์์ "https"๋ฅผ ๋ปํ๋ฉฐ ์ด๋ค ํ๋กํ .. 2022. 4. 27. [Network] ์ธ์ (Session)์ด๋? (What is a Session?) Session์ด๋? Session์ ์๊ตฌ์ ์ด๊ณ ์ํธ์์ฉ์ ์ธ ์ ๋ณด ๊ตํ์ ์ ์ ํ๋ ๋ ์ด์์ ํต์ ์ฅ์น๋ ์ปดํจํฐ์ ์ฌ์ฉ์ ๊ฐ์ ๋ํ๋ ์ก์์ ์ฐ๊ฒฐ์ํ๋ฅผ ์๋ฏธํ๋ ๋ณด์์ ์ธ ๋ค์ด์ผ๋ก๊ทธ(dialogue) ๋ฐ ์๊ฐ๋๋ฅผ ๊ฐ๋ฆฌํจ๋ค. - ์ํค ๋ฐฑ๊ณผ - ์ฆ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ฐ๊ฒฐ ์ํ๋ฅผ ์๋ฏธํ๋ ๊ฒ์ด๋ค. ์ข ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช ํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ ์ํ์ฌ ์๋ฒ์ ์ ์์ด ์ข ๋ฃํ๊ธฐ ์ ์ ์ํ๋ฅผ ์๋ฏธํ๋ค. ์ฝ๊ฒ ์ค๋ช ํ๋ฉด ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์ ์ํด ํด๋น ์ฐฝ์ ๋ซ๊ธฐ ์ ๊น์ง์ ์ํ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์ธ์ ๊ณผ์ 1. ํด๋ผ์ด์ธํธ๊ฐ ์น์ฌ์ดํธ์ ์ ์ํด ์๋ฒ์ ์์ฒญํ๋ค. 2. ์๋ฒ๋ ์ ์ํ ํด๋ผ์ด์ธํธ์๊ฒ ์ธ์ ID๋ฅผ ๋ถ์ฌํด์ ์๋ตํ๋ค. 3. ํด๋ผ์ด์ธํธ๋ ํด๋น ์ธ์ ID๋ฅผ ํค๋ ์ฟ ํค์ ๋ฃ์ด ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค. 4. ์๋ฒ๋ ์ธ์ .. 2022. 4. 26. ์ด์ 1 2 3 4 5 6 7 8 ยทยทยท 49 ๋ค์ 728x90 ๋ฐ์ํ