user-img
๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 21
AWS EC2์— Flask ๋ฐฐํฌํ•˜๊ธฐ (MySQL, FileZilla)
AWS EC2์— Flask ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.(๋‹น์—ฐํ•จ ํ•œ๋ฒˆ๋„ ์•ˆํ•ด๋ด„) ์šฐ์„  ์ €์—๊ฒŒ ์ฃผ์–ด์ง„ ๊ฑดec2-*-**-*-**.ap-northeast-2.compute.amazonaws.com ์„œ๋ฒ„ ์ฃผ์†Œ์™€ppk ํ‚คํŽ˜์–ด ํŒŒ์ผ๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค.(์ฝ˜์†” ์ ‘๊ทผ๋„ ๋ชปํ–ˆ์Œ,,) aws์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ~ ์ด๋Ÿฐ ๋ถ€๋ถ„์€ ๋‹ค ๋„˜์–ด๊ฐ€๊ณ  ์ด ์ƒํ™ฉ์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  [ ๋ชฉ์ฐจ ]1. ppk to pem2. aws ec2 ์„œ๋ฒ„ ์ ‘์†3. FileZilla Client ์„ค์น˜4. FileZilla๋กœ ์ฝ”๋“œ ํŒŒ์ผ ์—…๋กœ๋“œ5. flask ์‹คํ–‰6. port ์„ค์ •7. mysql ์„ค์น˜ ๋ฐ ์ ‘์†8. mysql ์‚ฌ์šฉ์ž ์ถ”๊ฐ€ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ9. flask์—์„œ mysql ์—ฐ๊ฒฐ10. ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ ** ๊ฐœ๋ฐœ ํ™˜๊ฒฝ **- Mac ..
2024.05.29
Programming
[Android] ์ด๋ฏธ์ง€ ํŒŒ์ผ(binary string) ๋ฐ›์•„์„œ Compose๋กœ ๋„์šฐ๊ธฐ
API ๋ฌธ์„œ์—์„œ Response๊ฐ’์ด string..Media type์ด image/png ์ผ ๋•Œ..์–ด๋–ป๊ฒŒ ํ•˜์‹œ๋‚˜์š”..? ๋‘๋ถ€๊ณ ๋ฐฑํ•˜์ž๋ฉด,, ๊ทธ๋™์•ˆ json ์‘๋‹ต๊ฐ’๋งŒ ์ฒ˜๋ฆฌํ–ˆ์–ด์„œ string๋งŒ? ๋ ์šฉ? ๐Ÿ˜ฎ์‚ด์ง ๊ฐ์ด ์•ˆ์™€์„œ postman๊นŒ์ง€ ๋Œ๋ ค๋ดค๋Š”๋ฐ ๋ฆฌ์–ผ๋ฃจ ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด ์˜จ๊ฑฐ ๋ณด๊ณ ๋ˆˆ๋ฌผ์˜ ์‚ฝ์งˆ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค..  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.Retrofit2 2.9.0okhttp3 4.11.0์›๋ž˜ (json ์‘๋‹ต๊ฐ’)๋ผ๋ฉด,@POST("transform") suspend fun request( @Part("type") type: RequestBody, @Part img: MultipartBody.Part, ): Response Response ๊ฐ’์œผ๋กœ ๋ฐ›์•„์„œ → apicall ๋ฐ›๋Š” ..
2024.04.15
Android
[Android] Retrofit MultipartBody๋กœ POST๋ณด๋‚ด๊ธฐ
API ๋ฌธ์„œ๋ฅผ ๋ฐ›์•˜๋Š”๋ฐ Request๊ฐ€ ์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ๋‹ค๋ฉด, ์šฐ๋ฆฌ๋Š” Multipart ๋ฐ์ดํ„ฐ๋กœ ๋ณด๋‚ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ƒฅ @Body ์•„๋ƒ? ํ‰์†Œ์ฒ˜๋Ÿผ Json์œผ๋กœ ๋ณด๋‚ด์•ผ์ง€~ ํ–ˆ๋‹ค๊ฐ€๋Š”422 Unprocessable Entity ์—๋Ÿฌ๋งŒ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค..์–ด๋–ป๊ฒŒ ์•Œ์•˜๋ƒ๊ตฌ์š”? ์ €๋„ ์•Œ๊ณ  ์‹ถ์ง€ ์•Š์•˜์–ด์š”… ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.Retrofit2 2.9.0okhttp3 4.11.0POST๋กœ ํ˜ธ์ถœํ•˜๋ฉฐ,Request Body๋Š” type: String, img: String($binary)๊ฐ€ ์š”๊ตฌ๋˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.   Api Interface ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.@Multipart@POST("transform") suspend fun request( @Part("type") type: Req..
2024.04.12
Android
์นด์นด์˜ค ์ฑ—๋ด‡ 5์ดˆ ํƒ€์ž„์•„์›ƒ, ์ฝœ๋ฐฑ ์‘๋‹ต์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ
์นด์นด์˜ค ์ฑ—๋ด‡์„ ๋ณธ์ธ์˜ ์„œ๋ฒ„(์Šคํ‚ฌ์„œ๋ฒ„)๋กœ ํ†ต์‹ ํ•˜๊ณ ์ž ํ•˜๋Š”๋ฐ์นด์นด์˜ค ์ฑ—๋ด‡์˜ ํƒ€์ž„์•„์›ƒ์€ 5์ดˆ์ž…๋‹ˆ๋‹ค.. ์‹ฌ์ง€์–ด ์ด ํƒ€์ž„์•„์›ƒ ์‹œ๊ฐ„์€ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•œ๋‹ค๊ณ  ์˜คํ”ผ์…œ์—์„œ๋„ ๋ชป๋ฐ•์•„๋‘๊ณ  ์žˆ์–ด์š”. ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์— ์ฝœ๋ฐฑ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ๋‹ค๊ณ  ์จ์žˆ์ฃ ?์ฝœ๋ฐฑ ๊ธฐ๋Šฅ์ด 5์ดˆ์˜ ํƒ€์ž„์•„์›ƒ์„ ๋ณด์™„ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค ! ์‚ฝ์งˆ์„ ์ข€ ํ–ˆ๋Š”๋ฐ ์ œ๊ฐ€ ์•Œ์•„๋‚ธ ์ด ์ฝœ๋ฐฑ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ ์–ด๋ณด๋ ค๊ณ  ํ•ด์š”๐Ÿ˜€  ๋จผ์ €, ์นด์นด์˜ค ์ฑ—๋ด‡์—์„œ ์ œ๊ณตํ•˜๋Š” ์ฝœ๋ฐฑ ๊ธฐ๋Šฅ์€5์ดˆ ์ด๋‚ด ๋‹ต๋ณ€์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ, ์ง€์—ฐ ๋ฉ”์„ธ์ง€(์˜ˆ. ์ž ์‹œ๋งŒ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”)๋ฅผ ๋ณด๋‚ด๊ณ  1๋ถ„ ์ด๋‚ด๋กœ 1๊ฑด์˜ ์‘๋‹ต์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด ์ฝœ๋ฐฑ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด AI ์ฑ—๋ด‡ ์ „ํ™˜์„ ํ•ด์•ผํ•˜๋Š”๋ฐ, ์ด AI ์ฑ—๋ด‡ ์ „ํ™˜์€ ์‹ ์ฒญํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋น„์ฆˆ๋‹ˆ์Šค์ ์œผ๋กœ ์ƒ์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ์ด์ƒํ•ด๋ณด์ด์ง€ ์•Š์œผ๋ฉด ์Šน์ธ๋˜๋Š”..
2024.02.17
Programming
Android Compose ์Šคํ„ฐ๋”” ๊ธฐ๋ก 03
1
Material Design๋””์ง€ํ„ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํฌ๊ด„์ ์ธ ๋””์ž์ธ ์‹œ์Šคํ…œColor, Typography, Shape ๋“ฑ@Composablefun MaterialTheme( colors: Colors, typography: Typography, shapes: Shapes, content: @Composable () -> Unit) val customTextSelectionColors = TextSelectionColors( handleColor = colorResource(id = R.color.primary100), backgroundColor = Color(0xFF4286F4).copy(alpha = 0.4f))CompositionLocalProvider(L..
2023.10.21
What I Learned
Android Compose ์Šคํ„ฐ๋”” ๊ธฐ๋ก 02
Modifierimage size, padding, background, round image, click event ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ@Composablefun Greeting(name: String) { Text( text = "Hello $name!", modifier = Modifier.onGloballyPositioned { android.util.Log.i("TEMP", "size ${it.size}") } )}onGloballyPositioned๋ฅผ ์ด์šฉํ•˜์—ฌ view์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ  Slot APIs์‚ฌ์šฉ์ž ์ •์˜ ๋ ˆ์ด์•„์›ƒ์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด Compose๊ฐ€ ๋„์ž…ํ•œ ํŒจํ„ด@Composablefun MyApplicationTheme( content: @Composable () -> Unit)๋งค๊ฐœ..
2023.10.20
What I Learned
Android Compose ์Šคํ„ฐ๋”” ๊ธฐ๋ก 01
์˜ˆ์—์ „์— ์ปดํฌ์ฆˆ ์Šคํ„ฐ๋”” ํ–ˆ๋˜ ๊ธฐ๋ก์„ ์˜ฎ๊ฒจ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.์ซŒ์ซŒ๋”ฐ๋ฆฌ ํ† ๋ง‰ ๊ธฐ๋ก๋“ค์ž…๋‹ˆ๋‹ค . . . setContent์•ˆ์— XML๋Œ€์‹  Composable ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œoverride fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { ComposeTheme { Surface(color = __ { Gretting("Android") } }}  @Composable์„ ์‚ฌ์šฉํ•˜๋ฉด Composable function์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ@Composablefun Greeting(name: String) { Text(text = "Hello $name!")}  @Preview๋ฅผ ํ†ตํ•ด ์ปดํฌ์ฆˆ..
2023.10.19
What I Learned
GPT 3.5๋ฅผ ์ด์šฉํ•ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡ ๋งŒ๋“ค๊ธฐ | JS๋กœ ํด๋ก  ์ฝ”๋”ฉ
๋‹ค๋“ค ChatGPT ๋งŽ์ด๋“ค ์“ฐ์‹œ์ฃ ?ํ”„๋กฌํ”„ํŠธ ๋””์ž์ด๋„ˆ ์ž๊ฒฉ์ฆ๊นŒ์ง€ ๋‚˜์™”๋‹ค๊ณ  ํ•˜๋‹ˆ ์ด์ œ ์ •๋ง ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ChatGPT๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” open API๋„ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ๋Š”๋ฐ, ์ด api๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šด๋‹ˆ๋‹ค. API Key ์ƒ์„ฑํ•˜๊ธฐ ๋จผ์ € api key๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผ ํ•ด์š”.์•„๋ž˜ ์‚ฌ์ดํŠธ๋กœ ๋“ค์–ด๊ฐ€์„œ ๋กœ๊ทธ์ธ(ํšŒ์›๊ฐ€์ž…)์„ ํ•ด์ค๋‹ˆ๋‹ค.https://openai.com/ OpenAICreating safe AGI that benefits all of humanityopenai.com ์„ธ๊ฐ€์ง€ ์ค‘์— ํ•˜๋‚˜ ์„ ํƒํ•˜๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ, ์„ธ๋ฒˆ์งธ API๋ฅผ ์„ ํƒํ•˜๋ฉด ๋ผ์š”.์ฒซ๋ฒˆ์งธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์ด์šฉํ•˜๋Š” ChatGPT ์‚ฌ์ดํŠธ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.   ์•„๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ๊ฒฐ์ œ ์ˆ˜๋‹จ์„ ๋“ฑ๋กํ•ด์ค๋‹ˆ๋‹ค.h..
2023.09.11
Programming
modulenotfounderror: no module named 'selenium’ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ
ํŒŒ์ด์ฌ์œผ๋กœ ๋ญ˜ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํ™˜๊ฒฝ์„ค์ •์—์„œ ๊ฐ€์žฅ ์• ๋ฅผ ๋จน๋Š” ํŽธ์ž…๋‹ˆ๋‹ค..์ •๋ง ๋งŽ์ด.๊ทธ๋ ‡๊ฒŒ ์ค‘๋„ํฌ๊ธฐํ–ˆ๋˜ ๊ฒฝ์šฐ๋„ ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์—” ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์„œ ๊ธฐ๋ก์„ ๋‚จ๊ฒจ๋ณผ ๊ฑฐ์˜ˆ์š” !!!  ** ๊ฐœ๋ฐœ ํ™˜๊ฒฝ : mac, VS Code **  pip install selenium์„ ํ–ˆ๊ณ ,pip list์—์„œ selenium์ด ์žˆ๋Š” ๊ฒƒ๊นŒ์ง€ ํ™•์ธํ–ˆ๋Š”๋ฐ์ œ๋ชฉ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.  1. VS Code interpreter ๋ณ€๊ฒฝํ•ด๋ณด๊ธฐhttps://velog.io/@keywookim/We.TIL-๋ฒˆ์™ธ-modulenotfounderror-no-module-named-selenium-ํ•ด๊ฒฐ๋ฒ• We.TIL ๋ฒˆ์™ธ : modulenotfounderror: no module named 'selenium' ํ•ด๊ฒฐ๋ฒ•์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ๋Š”์ง€ '๋‹ค์‹œ ํ•œ๋ฒˆ ํ™•์ธ..
2023.09.08
Programming