์ „์ฒด ๊ธ€

๐Ÿ‘ฉ‍๐Ÿ’ป java, mysql, android, php, javascript๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค
ยท ai
์„ธ์ƒ์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋ก ์ด ์žˆ๋‹ค(1) ๋ชฉํ‘œ๋ฅผ ์ •ํ•˜๊ณ  ๋‹จ๊ฑฐ๋ฆฌ ๋‹ฌ๋ฆฌ๊ธฐ(2) ๋ชฉํ‘œ๋ฅผ ์ •ํ•˜๊ณ  ์žฅ๊ฑฐ๋ฆฌ ๋‹ฌ๋ฆฌ๊ธฐ(3) ๋ ๊ฒƒ ๊ฐ™์€์ง€? ์•ˆ๋ ๊ฒƒ ๊ฐ™์€์ง€? ์ง€์ผœ๋ณด๋ฉด์„œ ๋ชฉํ‘œ๋ฅผ ์Šฌ๊ธˆ์Šฌ๊ธˆ ์ •ํ•˜๊ธฐ CTO๋กœ์„œ ๋‚œ์ด๋„๊ฐ€ ๋†’์€ ๊ธฐ์ˆ ์„ ๊ตฌํ˜„ํ• ๋•Œ๋Š” (AI, ๋ธ”๋ก์ฒด์ธ ๋“ฑ) 3๋ฒˆ์ด๋‹ค.์™œ 3๋ฒˆ์ธ๊ฐ€?๊ฐœ๋ฐœ์€ ๋…ธ๋ ฅ๋งŒ์œผ๋กœ ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ai ๋ชจ๋ธ, ์„œ๋ฒ„ ๊ตฌ์ถ• ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋„๊ตฌ ๋ฐ ์‹œ์Šคํ…œ์ด ๊ฐ–์ถฐ์ ธ์•ผ ํ•จ๋„๊ตฌ์™€ ์‹œ์Šคํ…œ์ด ์—†๋‹ค๋ฉด ๊ฐœ๋ฐœ์ž์˜ ๋…ธ๋ ฅ์ด ์žˆ์–ด๋„ ๊ธฐ๋Œ€ ์ดํ•˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ3๋ฒˆ์  ์‚ฌ๊ณ ๋ฅผ ๊ธฐ๋ฅด๋ ค๋ฉด1. ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊ฑด๋ฐ?์ด ์งˆ๋ฌธ์„ ๋‹ฌ๊ณ  ์‚ด์•„์•ผ ํ•œ๋‹ค2. ์žฅ๊ธฐ๋ชฉํ‘œ๋ฅผ ์‹ ์ค‘ํžˆ ์ •ํ•ด์•ผ ํ•œ๋‹ค= ์žฅ๊ธฐ๋ชฉํ‘œ๋ฅผ ๋‚˜์ค‘์— ์ •ํ•ด์•ผ ํ•œ๋‹ค์žฅ๊ธฐ ๋ชฉํ‘œ๋ฅผ ๋ƒ…๋‹ค ์ง€๋ฅด๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ๋Œ๋‹ค๋ฆฌ ๋‘๋“œ๋ ค๋ณด๋“ฏ ํ•˜๋‚˜์”ฉ ๋‘๋“œ๋ ค๋ณด๋ฉด์„œ ๋‹จ๊ธฐ๋ชฉํ‘œ1, ๋‹จ๊ธฐ๋ชฉํ‘œ2, ๋‹จ๊ธฐ๋ชฉํ‘œ3์ด๋Ÿฐ์‹์œผ๋กœ ์„ธ์šฐ๋ฉด์„œ์˜คํžˆ๋ ค ๊ธฐํš..
ยท ai
AI์˜ ๋ฐœ์ „์€ ์„ธ ์ฐจ๋ก€์— ๊ฑธ์ณ ํฌ๊ฒŒ ๋ณ€ํ™”ํ•ด์™”์Šต๋‹ˆ๋‹ค. 1์ฐจ AI ๋ถ์—์„œ๋Š” ๊ทœ์น™ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์ด ์ฃผ๋ชฉ๋ฐ›์œผ๋ฉฐ AI์˜ ๊ธฐ์ดˆ๊ฐ€ ๋‹ค์ ธ์กŒ์Šต๋‹ˆ๋‹ค. ์ดํ›„ 2์ฐจ AI ๋ถ์—์„œ๋Š” ๋จธ์‹ ๋Ÿฌ๋‹์˜ ๋“ฑ์žฅ๊ณผ ์—ญ์ „ํŒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋•๋ถ„์— ์‹ ๊ฒฝ๋ง ํ•™์Šต์ด ๊ฐ€๋Šฅํ•ด์ง€๋ฉด์„œ AI ์—ฐ๊ตฌ๊ฐ€ ๋‹ค์‹œ ํ™œ๊ธฐ๋ฅผ ๋ ์—ˆ์Šต๋‹ˆ๋‹ค. 3์ฐจ AI ๋ถ์— ์ด๋ฅด๋Ÿฌ์„œ๋Š” ๋”ฅ๋Ÿฌ๋‹๊ณผ ์ƒ์„ฑํ˜• AI๊ฐ€ ๋ฐœ์ „ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‚ฐ์—…์—์„œ ํ˜์‹ ์ ์ธ ์„ฑ๊ณผ๋ฅผ ๋‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.์œ„์˜ ์‚ฌ์ง„์„ ๋ณด๋ฉด, ๋จธ์‹ ๋Ÿฌ๋‹์ด ๋“ฑ์žฅํ•˜๊ณ ๋‚˜์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋”ฅ๋Ÿฌ๋‹์ด ๋“ฑ์žฅํ•  ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๋™์‹œ์— ๋ฐœ์ „ํ•ด์™”์Šต๋‹ˆ๋‹ค.  ๋จธ์‹ ๋Ÿฌ๋‹๊ณผ ๋”ฅ๋Ÿฌ๋‹์˜ ์ƒํ˜ธ๋ฐœ์ „๊ณผ ๊ณ„์ธต๊ตฌ์กฐ์˜ˆ๋ฅผ๋“ค์–ด,1980๋…„๋Œ€ ์—ญ์ „ํŒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋„์ž…์€ ๋จธ์‹ ๋Ÿฌ๋‹์˜ ์ค‘์š”ํ•œ ๋ฐœ์ „์ด์—ˆ์Šต๋‹ˆ๋‹ค.์ด๋ฅผ ํ†ตํ•ด ๋น„์„ ํ˜• ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ๋”ฅ๋Ÿฌ๋‹์€ ๋” ๊นŠ์€ ์‹ ๊ฒฝ๋ง์œผ๋กœ ๋ณต์žกํ•œ ํŒจํ„ด์„ ์ธ..
ยท Android
๋‚˜๋Š” ๋™์˜์ƒ ์—…๋กœ๋“œ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด์„œ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.์™œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ• ๊นŒ?๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋กœ ํ•˜๋ฉด, ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ์ฝ”๋“œ ์งœ๊ธฐ๋„ ์‰ฌ์šด๋ฐ...๋ฐ”๋กœ '์‚ฌ์šฉ์ž ๊ฒฝํ—˜' ๋•Œ๋ฌธ์ด๋‹ค.์˜ˆ๋ฅผ๋“ค์–ด, http ๋ ˆํŠธ๋กœํ• ์š”์ฒญ์œผ๋กœ ์„œ๋ฒ„์— ๋™์˜์ƒ ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•˜๋ฉด ์งง๊ฒŒ๋Š” 20์ดˆ~1๋ถ„ ๊ฐ€๋Ÿ‰ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค.์ด๋Ÿฐ ๊ฒฝ์šฐ์— http์š”์ฒญ์€ ์‘๋‹ต์ด ์˜ฌ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํŠน์„ฑ์ด ์žˆ์–ด์„œ, ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ http ์š”์ฒญ์„ ๋ณด๋‚ธ ๊ฒฝ์šฐ์—” ๊ณ„์† ๋Œ€๊ธฐ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ์–ธ์ œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ธธ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—์•ฑ์„ ๋„๊ณ  ์‹ถ์–ด์ง„๋‹ค... ๋”ฐ๋ผ์„œ, ๋ฉ€๋”ํ•œ ์•ฑ์ด ๋  ์ˆ˜ ์žˆ๋„๋ก(1)๋™์˜์ƒ ์—…๋กœ๋“œ ์š”์ฒญ์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ(์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„ ์‘๋‹ต๊ณผ ๊ด€๊ณ„์—†์ด ๋‹ค์Œ ๋™์ž‘์„ ์‹คํ–‰)ํ•˜๊ณ , (2)๋™์˜์ƒ์ด ์ž˜ ์—…๋กœ๋“œ ๋˜..
ยท php
๋”๋ณด๊ธฐ ubuntu@ip-172-31-46-103:/var/www/html$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer..
ยท php
s3๋ž€? aws s3๋Š” ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค(Storage Service)์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด ํŠน์ •ํ•œ ์‚ฌ์ง„,๋™์˜์ƒ ๋“ฑ์˜ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์ด๋‹ค. s3์—์„œ ๊ฐ์ฒด(Object)๋ž€ ์ €์žฅ๋˜๋Š” ํŒŒ์ผ์„ ์˜๋ฏธํ•˜๊ณ , ๋ฒ„ํ‚ท(Bucket)์€ ํŒŒ์ผ์ด ์ €์žฅ๋  ํ”„๋กœ์ ํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค s3๋Š” ํ‚ค(๊ณ ์œ  ์‹๋ณ„์ž)์™€ ๊ฐ’(๋ฐ์ดํ„ฐ ์ž์ฒด)๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์ธ ๊ฐœ์ฒด์˜ ๊ฐœ๋…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. ๊ฐœ์ฒด๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ์—์„œ ์ด๋ฏธ์ง€ ๋ฐ ๋น„๋””์˜ค ๊ฐ™์€ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋ฌด์—‡์ด๋“  ๋  ์ˆ˜ ์žˆ๋‹ค. ํฌ๊ธฐ๋Š” ์ตœ๋Œ€ 5TB๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ๋™์˜์ƒ ์—…๋กœ๋“œ ์‹œ๊ฐ„์„ ์ค„์—ฌ๋ณด๊ณ ์ž, ๋™์˜์ƒ ํŒŒ์ผ์„ ffmpeg๋กœ ์••์ถ•ํ•˜์—ฌ, s3 bucket์— ์—…๋กœ๋“œ ํ–ˆ๋‹ค. 220MB => 13.5MB๋กœ ํ™•์‹คํžˆ ์••์ถ•๋˜๊ธด ํ–ˆ์ง€๋งŒ ์••์ถ•ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. /..
ยท Android
์šฐ๋ฆฌ๊ฐ€ php server์—์„œ fcm server๋กœ ์•Œ๋ฆผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ๋•Œ๋Š”, php server์—์„œ server key๋ฅผ ์ฒจ๋ถ€ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ค˜์•ผ ํ•œ๋‹ค. server key๋Š” ๋ชจ๋‘๊ฐ€ ์•Œ๋“ฏ์ด ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ฝ˜์†”์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ ํ›„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค ๋‹ค์Œ ๋งํฌ๋Š” ์„œ๋ฒ„ํ‚ค ๋ฐœ๊ธ‰์ด ์™„๋ฃŒ๋œ ํ›„, ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ์ด๋‹ค. https://console.firebase.google.com/project/tiki-taka-22f76/settings/cloudmessaging ๋กœ๊ทธ์ธ - Google ๊ณ„์ • ์ด๋ฉ”์ผ ๋˜๋Š” ํœด๋Œ€์ „ํ™” accounts.google.com ๊ทธ๋Ÿฐ๋ฐ, ์ด ๋งํฌ์—์„œ ์„œ๋ฒ„ํ‚ค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.... ์„œ๋ฒ„ํ‚ค๋ฅผ ํŒŒ์ผ๋กœ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ํ™ˆํŽ˜์ด์ง€์— ๋”ฐ๋กœ ์„œ๋ฒ„ํ‚ค๊ฐ€ ์•ˆ๋œจ๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• Cloud Mess..
ยท Android
public class FirebaseCloudMessageService { // ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€์™€ ๋ฐ์ดํ„ฐ ํŽ˜์ด๋กœ๋“œ ํฌํ•จ public static void sendMessage(String registrationToken, String content, int messageId, int roomId, String name, String userProfile) throws Exception { // ๋ฐ์ดํ„ฐ ๋ฉ”์„ธ์ง€ // ํฌ๊ทธ๋ผ์šด๋“œ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ๋Š” ์ง์ ‘ ์ผ๊ด€๋˜๊ฒŒ ์ฒ˜๋ฆฌ Message message = Message.builder() // ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” Builder ๊ฐ์ฒด๊ฐ€ ๋ฐ˜ํ™˜ .putData("title", name) // ์•Œ๋ฆผ ์ œ๋ชฉ์„ ๋ฐ์ดํ„ฐ ํŽ˜์ด๋กœ๋“œ์— ์ถ”๊ฐ€ .putData("userProfile..
ยท Android
fcm์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์—ฌ๋Ÿฌ ์„ธํŒ…์„ ํ•˜๋˜ ๋„์ค‘์—, ์ƒˆ๋กœ์šด ํ† ํฐ์€ ๋ฐœ๊ธ‰ ๋ฐ›์•˜์œผ๋‚˜ ์ƒˆ ํ† ํฐ์ด ๋ถˆ๋Ÿฌ์™€์ง€์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. public class MyFirebaseMessagingService extends FirebaseMessagingService { String CHANNEL_ID; String CHANNEL_NAME; int userId; ChatApiService service; private static final String TAG = "FCM Service"; // ์„œ๋น„์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋ฉฐ, ์—ฌ๊ธฐ์„œ FCM ํ† ํฐ์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. @Override public void onCreate() { super.onCreate(); userId = SharedPreferencesHelper..
becky(์ง€์€)
Know yourself, follow your passion