๊ฐœ๋ฐœ ์ผ์ง€ ๐Ÿ’ป/Swemo

Nutri Capture - Entry point๋ฅผ Now in Android ์Šคํƒ€์ผ๋กœ ๋ณ€๊ฒฝ

interfacer_han 2025. 10. 31. 15:03

#1 ๊ฐœ์š”

Entry Point(์•ฑ ์ง„์ž… ์ง€์ )๋ฅผ Now in Android์˜ ๋ฐฉ์‹๋Œ€๋กœ ๋ฐ”๊ฟจ๋‹ค.

 

#2 ๊ฐœ์„ ํ•œ ํฌ์ธํŠธ

#2-1 Entry Point?

 

์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ(entry point) ๋˜๋Š” ์ง„์ž…์ (้€ฒๅ…ฅ้ปž)์€ ์šด์˜ ์ฒด์ œ์—์„œ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ œ์–ด๊ถŒ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด๋ฉฐ, ํ”„๋กœ์„ธ์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์ฝ”๋“œ์— ์ง„์ž…ํ•ด์„œ ์‹ค

ko.wikipedia.org

'ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์ '์ด๋‹ค. Entry Point๋Š” ์–ด๋–ป๊ฒŒ ๋ณด๋ƒ์— ๋”ฐ๋ผ ์–ผ๋งˆ๋“ ์ง€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๊ฝค ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์ด๋‹ค.

 

#2-2 ์•ˆ๋“œ๋กœ์ด๋“œ์˜ Entry Point

 

[Android] ๋ฉ”์ธ ์Šค๋ ˆ๋“œ & Handler ์ดํ•ดํ•˜๊ธฐ - Junghoon's Blog

UI ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ๋งŽ์ด ํ™œ์šฉํ•˜์ง€๋งŒ, UI๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๋ชจ๋ธ(ํ•ด๋‹น ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์ ์—๋Š” ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ

Junghun0.github.io

์œ„ ๊ฒŒ์‹œ๊ธ€์— ๋”ฐ๋ฅด๋ฉด ์•ˆ๋“œ๋กœ์ด๋“œ ์‹œ์Šคํ…œ์˜ Entry Point๋Š” ActivityThread.main()์ด๋‹ค. ํ•˜์ง€๋งŒ, ์•ˆ๋“œ๋กœ์ด๋“œ ๋Ÿฐํƒ€์ž„๋ณด๋‹จ ์ถ”์ƒ์ ์ธ ๋ฉด์„ ๋‹ค๋ฃจ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์‹ค์งˆ์ ์ธ Entry Point๋Š” MainActivity.onCreate()๋ผ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค (ํ˜น์€ Application.onCreate() ์ •๋„๋„ Entry Point๋ผ ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค).

 

#2-2 Why

๋‚˜๋Š” ์™œ Entry Point๋ฅผ ๋ฐ”๊พธ๋ ค๋Š”๊ฐ€? ์•ž์œผ๋กœ ๋‚จ๋“ค์ด ๋‚˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณผ ์ผ์ด ์ƒ๊ธธ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚จ์˜ ์ฝ”๋“œ๋Š” ์ž˜ ์•ˆ ์ฝํžŒ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๋‚˜์˜ ์ฝ”๋“œ ๋˜ํ•œ ๋ถ„๋ช… ๋‚จ๋“ค์—๊ฒŒ ์ž˜ ์•ˆ ์ฝํž ์šด๋ช…์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋””์ž์ธ ํŒจํ„ด๋“ค์˜ ์ฃผ์š”ํ•œ ์กด์žฌ ์˜์˜ ์ค‘ ํ•˜๋‚˜๋Š”, ์ด๋Ÿฐ '๋‚จ์˜ ์ฝ”๋“œ' ์ฝ๊ธฐ์— ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•จ์ด๋‹ค. 'Entry Point๋ฅผ ์ •ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด' ๋”ฐ์œ„๋Š” ์—†์ง€๋งŒ, ๋น„์Šทํ•œ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๋ฐ”๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ์˜ ๊ต๊ณผ์„œ(ํ‘œ์ค€)์ธ Now in Android์˜ ์Šคํƒ€์ผ์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์–ด๋–ค ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ผ๋„ ๋‚ด ํ”„๋กœ์ ํŠธ์˜ Entry Point๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ฝ์–ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

#2-3 How (๋„์‹๋„)

์•ฑ ์ง„์ž… ์ง€์ ์˜ ๋ณ€๊ฒฝ์„ ํ‘œํ˜„ํ•œ ๋„์‹๋„. Now in Android์—์„  "...Screen"์œผ๋กœ ์ž‘๋ช…๋œ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ํŠน์ • ํ™”๋ฉด ์ž์ฒด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ NutrientScreen ์ปดํฌ๋„ŒํŠธ์˜ ์—ญํ• ๋„ ๊ทธ๋ ‡๊ฒŒ ๋ฐ”๊ฟจ๋‹ค. ์›๋ž˜ NutrientScreen์€ ์‚ฌ์šฉ์ž์˜ ์˜์–‘ ๊ธฐ๋ก์„ ๋‹ด๋‹นํ•˜๋Š” ์—ญํ• ์ด์—ˆ๋Š”๋ฐ, ์ด์ œ '์˜์–‘ ๊ธฐ๋ก์„ ๋ณด๋Š” ํ™”๋ฉด' ์ž์ฒด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐ”๊ฟจ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์กด์˜ ์—ญํ• ์€ ์‹ ๊ทœ ์ปดํฌ๋„ŒํŠธ NutrientHistory์— ์˜ฎ๊ฒจ์ฃผ์—ˆ๋‹ค. 

 

#3 ์†Œ์Šค ์ฝ”๋“œ

#3-1 ์ด ๊ฒŒ์‹œ๊ธ€ ์‹œ์ ์˜ Commit

 

GitHub - Kanmanemone/nutri-capture-new

Contribute to Kanmanemone/nutri-capture-new development by creating an account on GitHub.

github.com

 

#3-2 ๋ณธ ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€์žฅ ์ตœ์‹  Commit

 

GitHub - Kanmanemone/nutri-capture-new

Contribute to Kanmanemone/nutri-capture-new development by creating an account on GitHub.

github.com