๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 218

C์–ธ์–ด static, register, volatile ์ง€์ •์ž ๊ฐœ๋…

https://codebunny99.tistory.com/122 CPU ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ธฐ(ํ˜•์‹) ๋ณ€์ˆ˜ = ๋ฐ์ดํ„ฐ =์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์€ ๋ณ€์ˆ˜, ์˜ค๋ฅธ์ชฝ์€ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค. count = 3 ์ฝ”๋“œ (Code) ์˜์—ญ:ํ”„๋กœ๊ทธ๋žจ์˜ "์š”๋ฆฌ์ฑ…"์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.์š”๋ฆฌ์ฑ…์—๋Š” ์š”๋ฆฌ ๋ฐฉ๋ฒ•(๋ช…๋ น์–ด)๋“ค์ด ์ ํ˜€codebunny99.tistory.com   ์ €์žฅ ์œ ํ˜• ์ง€์ •์ž static - ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ฐ์ดํ„ฐ (Data) ์˜์—ญ์— ์ €์žฅ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.#include void sub() { static int scount = 0; int acount = 0; printf("scount = %d\t", scount); printf("acount = %d\n", acount); scoun..

C์–ธ์–ด ์ „์—ญ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜(+๊ฐ€๋ณ€๋งค๊ฐœ๋ณ€์ˆ˜)์˜ ๊ฐœ๋…

https://codebunny99.tistory.com/122 CPU ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ธฐ(ํ˜•์‹) ๋ณ€์ˆ˜ = ๋ฐ์ดํ„ฐ =์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์€ ๋ณ€์ˆ˜, ์˜ค๋ฅธ์ชฝ์€ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค. count = 3 ์ฝ”๋“œ (Code) ์˜์—ญ:ํ”„๋กœ๊ทธ๋žจ์˜ "์š”๋ฆฌ์ฑ…"์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.์š”๋ฆฌ์ฑ…์—๋Š” ์š”๋ฆฌ ๋ฐฉ๋ฒ•(๋ช…๋ น์–ด)๋“ค์ด ์ ํ˜€codebunny99.tistory.com  ๋ณ€์ˆ˜์˜ ์†์„ฑ - ์ด๋ฆ„, ํƒ€์ž…, ํฌ๊ธฐ, ๊ฐ’ + ๋ฒ”์œ„, ์ƒ์กด์‹œ๊ฐ„, ์—ฐ๊ฒฐ ๋ฒ”์œ„(scope) : ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„, ๊ฐ€์‹œ์„ฑ์ƒ์กด ์‹œ๊ฐ„(lifetime) : ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ์‹œ๊ฐ„์—ฐ๊ฒฐ(linkage) : ๋‹ค๋ฅธ ์˜์—ญ์— ์žˆ๋Š” ๋ณ€์ˆ˜์™€์˜ ์—ฐ๊ฒฐ ์ƒํƒœ    ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„(scope) : ์ „์—ญ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜//---------์ „์—ญ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„ ์‹œ์ž‘----------#include ..

C์–ธ์–ด ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ผ๋ถ€๋กœ ์ œ๊ณต๋˜๋Š” ํ•จ์ˆ˜์ด๊ณ  ๋ฐ˜๋Œ€๋กœ, ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.  ex)// ๋‘ ์ˆ˜ ์ค‘์—์„œ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜#include int get_max(int a, int b) { if(a > b) return(a); else return(b);}int main(void) { int x, y; printf("๋‘ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: "); scanf("%d %d", &a, &b); printf("๋‘ ์ˆ˜ ์ค‘์—์„œ ํฐ ์ˆ˜๋Š” %d์ž…๋‹ˆ๋‹ค\n", get_max(x, y)); return 0;} // ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ํ•จ์ˆ˜#include int get_integer() { ..

C์–ธ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ rand() ํ•จ์ˆ˜

rand() ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜ - ๋ฌด์ž‘์œ„ ์ˆซ์ž(๋‚œ์ˆ˜)๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜- ๋‚œ์ˆ˜(random number)๋Š” ๊ทœ์น™์„ฑ์ด ์—†์ด ์ž„์˜๋กœ ์ƒ์„ฑ๋˜๋Š” ์ˆ˜์ด๋‹ค.- ๋‚œ์ˆ˜๋Š” ์•”ํ˜ธํ•™์ด๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜, ๊ฒŒ์ž„ ๋“ฑ์—์„œ ํ•„์ˆ˜์ ์ด๋‹ค- rand() ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•œ ์‹œํ€€์Šค์˜ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค- ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌด์ž‘์œ„ ์ˆซ์ž ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด srand() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๋“œ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.- ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ๋“œ(seed)๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ˜„์žฌ์˜ ์‹œ๊ฐ์„ ์‹œ๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.- ํ˜„์žฌ์‹œ๊ฐ์€ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  // ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑ๋œ ๋ง์…ˆ ๋ฌธ์ œ ํ€ด์ฆˆ ํ”„๋กœ๊ทธ๋žจ// %10์œผ๋กœ ํ•˜์—ฌ, 1๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ๋‚œ์ˆ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.#include #include #๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž„ํฌํŠธ#include int main(..

C์–ธ์–ด Basic ๋ฐ˜๋ณต๋ฌธ while, for ๊ฐœ๋…

while๋ฌธ - ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์žฅ๋“ค์„ ๊ทธ๋ฃนํ•‘ํ•ด์•ผํ•œ๋‹ค.#include int main(void){ int i = 0; while(i #include int main(void){ int n; int i = 1; printf("์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์€ ๋‹จ: "); scanf("%d", &n) while(i // while๋ฌธ์„ ์ด์šฉํ•œ ์ œ๊ณฑ๊ฐ’ ์ถœ๋ ฅ ํ”„๋กœ๊ทธ๋žจ#include int main(void){ int n; printf("์ •์ˆ˜์™€ ๊ทธ ์ œ๊ณฑ๊ฐ’\n"); n = 1; while (n  // 1๋ถ€ํ„ฐ ์ž…๋ ฅํ•œ ์ˆซ์ž๊นŒ์ง€์˜ ํ•ฉ๊ณ„ ๊ตฌํ•˜๊ธฐ#include int main(void){ int i, n, sum; //๋ณ€์ˆ˜ ์„ ์–ธ printf("..

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ๊ตฌ๊ธ€ ๋งต ์‚ฌ์šฉํ•˜๊ธฐ

๊ตฌ๊ธ€๋งต ์‚ฌ์šฉํ•˜๊ธฐ https://developers.google.com/maps/documentation/android-sdk/secrets-gradle-plugin?hl=ko  - ์ด๊ณณ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜์™€ ํ™˜๊ฒฝ์„ค์ •์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋‚˜์™€์žˆ๋‹ค.  API ํ‚ค ๊ฐ’ ์ƒ์„ฑํ•˜๊ณ  ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์— ์ž‘์„ฑํ•˜๊ธฐ https://console.cloud.google.com/welcome/new?project=igneous-axiom-426807-f3 Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ๋กœ๊ทธ์ธ Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์œผ๋กœ ์ด๋™accounts.google.com  ์‚ฌ์šฉ ํด๋ฆญํ•˜๊ธฐ    ์‚ฌ์šฉ์ž API ํ‚ค ์ƒ์„ฑ ํ›„, API ํ‚ค๋ฅผ ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ€์„œ    Maps SDK for Android API๋ฅผ ์„ ํƒํ•˜์—ฌ ์ €์žฅ ๋ˆ„๋ฅด๊ณ ,     ํ‚ค ํ‘œ์‹œ ๋ˆŒ..

Android 2024.06.18

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค GPS ๊ธฐ๋Šฅ์œผ๋กœ ์ง€๋„์— ๋งˆ์ปค ์ถ”๊ฐ€ํ•˜๊ธฐ

์ขŒํ‘œ ํ‘œ์‹œํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ      MainActivity.java package com.~.gps;import android.Manifest;import android.content.pm.PackageManager;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.util.Log;import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import androi..

Android 2024.06.18

C์–ธ์–ด Basic ์กฐ๊ฑด๋ฌธ if, switch ๊ฐœ๋…

if๋ฌธif ( number > 0 ) printf("์–‘์ˆ˜์ž…๋‹ˆ๋‹ค\n"); // ์ฐธ์ธ ๊ฒฝ์šฐ if ( temperature     ๋ณตํ•ฉ๋ฌธ - ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์žฅ๋“ค์„ ๊ทธ๋ฃนํ•‘ํ•œ๋‹ค.- ๋ธ”๋ก(block)์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.- ๋‹จ์ผ๋ฌธ ๋Œ€์‹  ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.// ๋ณตํ•ฉ๋ฌธ// ์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ฉด 2๊ฐœ์˜ ๋ฌธ์žฅ์ด ๋ฌถ์—ฌ์„œ ์‹คํ–‰๋œ๋‹ค.if(score >= 60) { printf("ํ•ฉ๊ฒฉ์ž…๋‹ˆ๋‹ค.\n") printf("์žฅํ•™๊ธˆ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n") }    if else๋ฌธ// 1๋ฒˆ ์˜ˆ์‹œif( number > 0 ) printf("์–‘์ˆ˜์ž…๋‹ˆ๋‹ค.\n");else printf("์Œ์ˆ˜์ž…๋‹ˆ๋‹ค.\n"); // 2๋ฒˆ ์˜ˆ์‹œif( score >= 60 ) { printf("ํ•ฉ๊ฒฉ์ž…๋‹ˆ๋‹ค\n"); ..

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ํƒญ ๋ฐ”(Tab Bar) ๊ตฌํ˜„ํ•˜๊ธฐ

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค Activity์™€ Fragment์˜ ์ฐจ์ด   Activity ์•ฑ์ด ์‹คํ–‰๋˜๋ฉด ์ฒซ ๋ฒˆ์งธ๋กœ ํ˜ธ์ถœ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ,  ํ™”๋ฉด ์ „์ฒด๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ, ๋ชจ๋“  UI ์š”์†Œ๋ฅผ ํฌํ•จํ•œ๋‹ค  vs  Fragment ex) ํƒœ๋ธ”๋ฆฟ์˜ ๋‘ ํŒจ๋„ ํ™”๋ฉด(์™ผ์ชฝ ๋ชฉ๋ก, ์˜ค๋ฅธ์ชฝ ์ƒ์„ธ ๋ณด๊ธฐ), ํƒญ ๋ทฐ์˜ ๊ฐ ํƒญ ๋“ฑ. Activity ๋‚ด์—์„œ ๋ถ€๋ถ„์ ์œผ๋กœ UI๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ Activity์˜ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ, ์—ฌ๋Ÿฌ Fragment๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ Activity๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. ํ™”๋ฉด์˜ ์ผ๋ถ€๋งŒ์„ ์ฐจ์ง€ํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ Fragment๊ฐ€ ํ•˜๋‚˜์˜ Activity ๋‚ด์—์„œ ๋™์‹œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. Fragment๋Š” ์ž์‹ ์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ์ด๋Š” Activity์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ์— ์ข…์†๋œ๋‹ค.   Flutter : ์›์†Œ์Šค ๋ฉ€ํ‹ฐ์œ ์ €๋ž€ ?..

Android 2024.06.18

์‚ฌ์ง„์„ ํฌ์ŠคํŒ…ํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜(App) ๊ฐœ๋ฐœํ•˜๊ธฐ

๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ๊ณ ํ•ด, ๋ฉ”์ธ์•กํ‹ฐ๋น„ํ‹ฐ์™€ ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ ํ™”๋ฉด๊ณผ Activity๋ฅผ ๋งŒ๋“ค๊ณ , config, string์„ ์ž‘์„ฑํ•ด์ค€๋‹ค. https://codebunny99.tistory.com/170 ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ ์•ฑ(app)์„ Retrofit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋งŒ๋“ค๊ธฐRestful API(๋ฉ”๋ชจ API)๋ฅผ ๋งŒ๋“ค๊ณ , MySQL๊ณผ ์—ฐ๋™ํ•˜์—ฌ Postman์œผ๋กœ ๊ฐœ๋ฐœํ•œ ํ›„, ์ง„ํ–‰ํ•˜์˜€๋‹ค.     ์•กํ‹ฐ๋น„ํ‹ฐ ์„ธ ๊ฐœ ๋งŒ๋“ค๊ธฐ   ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ   Retrofit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ํ•˜๊ธฐ build.gradle.kts(:app)์—์„œimplemecodebunny99.tistory.com   config์˜ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋Š”,     ํฌ์ŠคํŒ… API๋ฅผ ๋งŒ๋“  vscode๋ฅผ sls deploy ํ•ด์ค€ ํ›„, ๋‚˜์˜จ endpoint ์ฃผ์†Œ๋กœ..

Android 2024.06.17