์ ์ฒด ๊ธ235 Web programming : RESTful API ๋ RESTful API๋ ๋ฌด์์ธ๊ฐ์? RESTful API๋ ๋ ์ปดํจํฐ ์์คํ ์ด ์ธํฐ๋ท์ ํตํด ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๊ตํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค์ ๋๋ค. ๋๋ถ๋ถ์ ๋น์ฆ๋์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ํ์คํฌ๋ฅผ ์ํํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์๋ ํํฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํต์ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๊ฐ ๊ธ์ฌ ๋ช ์ธ์๋ฅผ ์์ฑํ๋ ค๋ฉด ์ธ๋ณด์ด์ค ๋ฐํ์ ์๋ํํ๊ณ ๋ด๋ถ์ ๊ทผ๋ฌด ์๊ฐ ๊ธฐ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํต์ ํ๊ธฐ ์ํด ๋ด๋ถ ๊ณ์ ์์คํ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ณ ๊ฐ์ ๋ฑ ํน ์์คํ ๊ณผ ๊ณต์ ํด์ผ ํฉ๋๋ค. RESTful API๋ ์์ ํ๊ณ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ ํจ์จ์ ์ธ ์ํํธ์จ์ด ํต์ ํ์ค์ ๋ฐ๋ฅด๋ฏ๋ก ์ด๋ฌํ ์ ๋ณด ๊ตํ์ ์ง์ํฉ๋๋ค. ์ถ์ฒ : https://aws.amazon.com/ko/what-is/restful-api/ REST์ ๊ตฌ์ฑ์์ โญ R.. Web programming 2023. 12. 12. Java ํ๋ก๊ทธ๋๋ฐ : String ๋ฌธ์์ด ์๋ฅด๊ธฐ - substring ์ฝ๋ฉ ํ ์คํธ ๋ฌธ์์ด ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ํ๋ฆฐ ์ ์ด ์์ด ์ ํํ ๊ธฐ์ตํ๊ณ ์ ๊ธ์ ์์ฑํ๊ธฐ๋ก ํ๋ค. ํ๋ฆฐ ์ ์ ํฌ๊ฒ ๋๊ฐ์ง๋ค. 1. ๋ฉ์๋๋ช ์ด subString()์ด ์๋๋ผ substring()์ด๋ค. ํฉ์ฑ์ด๊ฐ ์๋ ํ๋์ ๋จ์ด์ด๋ค. 2. substring(int startIndex, int endIndex) ๋ฅผ ํ๋ผ๋ฏธํฐ์ ๋ฃ์ด์ค ๋, endIndex ์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ํฌํจํ๋์ง ์ ํฌํจํ๋์ง Java์์ java.lang.String ํด๋์ค์ ๋ฌธ์์ด์ ์๋ฅด๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค. split() ๋ฉ์๋๋ ์๊ณ , substring() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์๋ฅผ ์๋ ์๋ค. split() split() ๋ฉ์๋๋ ๊ฐ๋ก ์์ ์ ๊ท์์ ์ ์ด์ฃผ๋ฉด ์ ๊ท์์ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ์๋ผ์ค๋ค. ๋ฌธ์์ด์ ์๋ผ ๋ฌธ์์ด ๋ฐฐ์ด.. Java programming 2023. 12. 11. ํจ์คํธ์บ ํผ์คX์ผ๋์: ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ถํธ ์บ ํ - ๐ก๋ฏธ๋ ํ๋ก์ ํธ : ๋นจ(8)๋ฆฌ ์ก์ - FastCatch ๋นจ(8๏ธโฃ)๋ฆฌ ์ก์ - FastCatch๐ฅ ์ด๊ฑฐ ๋ค ๋๋ฉด 8์กฐ?! - ํ์๊ฐ์ผ๋์ ํ ํฌ์ค์ฟจ ํ๋ก ํธ์๋ : ์ดโ โ (ํ์ฅ), ๊ณ โ โ , ์ค โ โ , ์ด โ โ , ์ โ โ ์ผ๋์ ํ ํฌ์ค์ฟจ ๋ฐฑ์๋ : ๋ฐ์ฃผํ(ํ์ฅ), ๊น โ โ , ์ด โ โ , ์ โ โ ๐กํ๋ก์ ํธ ๊ฐ์ 1๏ธโฃํ๋ก์ ํธ๋ด์ฉ์๋ฐ ์์ฝ ์๋น์ค2๏ธโฃํ๋ก์ ํธ ์ฃผ์ ๋ฐ ํ์ ๊ตฌํ ๊ธฐ๋ฅ ์ ์์ผ๋์3๏ธโฃํ๋ก์ ํธ ๋ชฉ์ ํ ํ์ , RESTful API ๊ฐ๋ฐ4๏ธโฃํ๋ก์ ํธ ๊ธฐ๊ฐ2023๋ 11์ 20์ผ (์) ~ 12์ 01์ผ(๊ธ)5๏ธโฃํ๋ก์ ํธ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ 6๏ธโฃ๊ธฐ์ ์คํ์ธ์ดJava17๊ฐ๋ฐํ๊ฒฝ ๋ฐ DependencySpring Boot 3.1.5Gradle 8.3MySQL 8Spring WebSpring Data JPAJUint5lomb.. FastCampus X Yanolja TechSchool 2023. 12. 10. ์๋ฒ์ HTTPS ์์ฒญ ๋ณด๋ด๊ธฐ 2ํธ - ๋ก๋ ๋ฐธ๋ฐ์ฑ( ๋์ ๊ทธ๋ฃน, ๋ก๋ ๋ฐธ๋ฐ์) https://programmer-may.tistory.com/176 ์๋ฒ์ HTTPS ์์ฒญ ๋ณด๋ด๊ธฐ 1ํธ - (feat. Mixed Content ์๋ฌ ํด๊ฒฐ)๊ฐ์์ต์ข ์ ์ผ๋ก ํ๋ก ํธ์๋์ ๋ฐฑ์๋์ ์์ ์ด ๋๋ ํ ์คํธ๋ฅผ ํด๋ณด๊ธฐ ์ํด, Vercel์ ๋ฐฐํฌ๋ ์น ํ์ด์ง์์ ํ ์คํธ ์๋ฒ EC2 ์ธ์คํด์ค API ์์ฒญ์ ๋ณด๋๋ค. ํ์ง๋ง ์ฐ๋ํ์๋ง์ ์๋ฌ๋ฅผ ๋ง๋ ์ ์programmer-may.tistory.com ์ ํธ์ ๋๋ฉ์ธ ๋ฑ๋ก(AWS Route 53 , ๊ฐ๋น์ )๋ถํฐ SSL ์ธ์ฆ์ ๋ฐ๊ธ( AWS Certificate Manager(ACM)) ๊น์ง ์์ ๋ดค๋ค. ์ด์ EC2 ๊ฒ์ ๋ก๋๋ฐธ๋ฐ์๋ฅผ ๋์ด HTTPS ์์ฒญ์ ๋ฐ์ ์ ์๊ฒ ํ์! EC2 - Target Group๋ก๋ ๋ฐธ๋ฐ์์ ์ ์ฉํ๊ธฐ ์ํ Targ.. DevOps/AWS 2023. 12. 9. ์๋ฒ์ HTTPS ์์ฒญ ๋ณด๋ด๊ธฐ 1ํธ - (feat. Mixed Content ์๋ฌ ํด๊ฒฐ) ๊ฐ์์ต์ข ์ ์ผ๋ก ํ๋ก ํธ์๋์ ๋ฐฑ์๋์ ์์ ์ด ๋๋ ํ ์คํธ๋ฅผ ํด๋ณด๊ธฐ ์ํด, Vercel์ ๋ฐฐํฌ๋ ์น ํ์ด์ง์์ ํ ์คํธ ์๋ฒ EC2 ์ธ์คํด์ค API ์์ฒญ์ ๋ณด๋๋ค. ํ์ง๋ง ์ฐ๋ํ์๋ง์ ์๋ฌ๋ฅผ ๋ง๋ ์ ์์๋ค. Mixed Content ๋?Mixed Content ์๋ฌ๋ ์น ํ์ด์ง๊ฐ HTTPS๋ฅผ ํตํด ๋ก๋๋๋ฉด์, HTTP๋ฅผ ํตํด ๋ก๋๋๋ ๋ฆฌ์์ค(์: ์ด๋ฏธ์ง, ์คํฌ๋ฆฝํธ, ์คํ์ผ์ํธ ๋ฑ)๋ฅผ ํฌํจํ ๋ ๋ฐ์ํ๋ค. ์ด๋ฌํ ์ํฉ์ ๋ณด์ ์ํ์ ์ด๋ํ ์ ์์ผ๋ฏ๋ก, ๋๋ถ๋ถ์ ํ๋ ๋ธ๋ผ์ฐ์ ๋ Mixed Content๋ฅผ ํ์ฉํ์ง ์๊ณ ์ฐจ๋จํ๋ค.Mixed Content์ ์ข ๋ฅPassive Mixed Content (Display Mixed Content)ํ์ด์ง๊ฐ ์ฌ์ ํ HTTPS๋ก ๋ก๋๋์ง๋ง, HTTP๋ฅผ ํตํด ๋ก๋๋ ๋ฆฌ์์ค.. DevOps/AWS 2023. 12. 8. AWS EC2 : permission denied (public key) ๋๊ฐ์ ํด๋จผ ์๋ฌ ์์ผ์ ๋ถ๋ค์ ์ํด ๊ธ ์์ฑํฉ๋๋ค. yml ํ์ผ์๋ RELEASE_SERVER_USERNAME ์ Secrets๋ฅผ ๋ฐ๋๋ฐ, ๋ณ์๋ช ๊ณผ ์์ ๋ด์ฉ๋ค ์ ํ์ธํฉ์๋ค~~!! ๋ฒ๋ฆฐ ์๊ฐ์ด ๋๋ฌด ์๊น๋ค.... DevOps/Git 2023. 12. 3. CI/CD : GitHub Actions, EC2, RDS๋ฅผ ํ์ฉํ ์๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ 3ํธ ์ด์ ํฌ์คํ ๋ณด์ง ์์ผ์ ๋ถ๋ค์ ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํ๊ณ ์ด๊ฒ์ ๋ด์ฃผ์ธ์. GitHub Actions, EC2, RDS๋ฅผ ํ์ฉํ ์๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ 1ํธ - EC2 ์๋ฒ ๊ตฌ์ถ https://programmer-may.tistory.com/172 CI/CD : GitHub Actions, EC2, RDS๋ฅผ ํ์ฉํ ์๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ 1ํธ ์ง๋๋ฒ ํผ์์ ๋๋๋๊ณ ์ง์ธ์์ ๋ฌผ์ด๋ด์ develop ๋ธ๋์น์ ์๋๋ฐฐํฌ ํ์ดํ ๋ผ์ธ์ ๊ตฌ์ถํด ๋ณด์๋ค. ์ด๋ฒ์ ํผ์์ ์ค์ ๋๋์ผ๋ก release ๋ธ๋์น์ ์๋ ๋ฐฐํฌ ์๋ฒ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ๋ค. ๋จผ์ ์ฌ์ฉํ programmer-may.tistory.com GitHub Actions, EC2, RDS๋ฅผ ํ์ฉํ ์๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ 2ํธ - RD.. DevOps/Git 2023. 11. 29. CI/CD : GitHub Actions, EC2, RDS๋ฅผ ํ์ฉํ ์๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ 2ํธ ์ด๋ฒ ๊ธ์ ์ ๋ฒ๊ธ์์ ์ด์ด์ง๋ ์ ๋ฒ๊ธ์ ์์ง ๋ณด์ง ์์ ๋ถ๋ค์ ์ ๋ฒ๊ธ์ ์ฝ์ด์ฃผ์ธ์.https://programmer-may.tistory.com/172 GitHub Actions, EC2, RDS๋ฅผ ํ์ฉํ ์๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ 1ํธ์ง๋๋ฒ ํผ์์ ๋๋๋๊ณ ์ง์ธ์์ ๋ฌผ์ด๋ด์ develop ๋ธ๋์น์ ์๋๋ฐฐํฌ ํ์ดํ ๋ผ์ธ์ ๊ตฌ์ถํด ๋ณด์๋ค. ์ด๋ฒ์ ํผ์์ ์ค์ ๋๋์ผ๋ก release ๋ธ๋์น์ ์๋ ๋ฐฐํฌ ์๋ฒ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ๋ค. ๋จผ์ ์ฌ์ฉํprogrammer-may.tistory.com ์ ๋ฒ์ OpenSSH key๋ฅผ ๋ง๋๋ ๊ฒ ๊น์ง ํ๋ค. ์ด์ ๋์ EC2 ์๋ฒ์ ๋ค์ด๊ฐ์ Open JDK ๋ฅผ ๊น์ ๋์ JAR ํ์ผ์ด ์คํ ๋ ์ ์๋๋ก ํ๊ฒ ๋ค. (์ถ๊ฐ์ ์ผ๋ก MySQL ํด๋ผ์ด์ธํธ๊น์ง ๋ค์ด) SSH ํด๋ผ์ด.. DevOps/AWS 2023. 11. 28. CI/CD : GitHub Actions, EC2, RDS๋ฅผ ํ์ฉํ ์๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ 1ํธ (PEM, PPK ํค , PuTTy) ์ง๋๋ฒ ํผ์์ ๋๋๋๊ณ ์ง์ธ์์ ๋ฌผ์ด๋ด์ develop ๋ธ๋์น์ ์๋๋ฐฐํฌ ํ์ดํ ๋ผ์ธ์ ๊ตฌ์ถํด ๋ณด์๋ค. ์ด๋ฒ์ ํผ์์ ์ค์ ๋๋์ผ๋ก release ๋ธ๋์น์ ์๋ ๋ฐฐํฌ ์๋ฒ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ๋ค. ๋จผ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก EC2 ์ธ์คํด์ค์ RDS MySQL ์ด๋ค. ์ธ์คํด์ค ์์์ ๋๋ฅด๊ณ ์ด๋ฆ์ ์ ์ด์ค๋ค. AMI ๋ก ๋ ํผ๋ฐ์ค๊ฐ ๋ง์ด ์๋ Ubuntu ๋ฅผ ํ์ฉํ์๋ค. ์ธ์คํด์ค ์ ํ์ผ๋ก๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ๋์ด ์๋ t2.micro ์ฌ์ฉํ์๋ค. ๋ค์์ ์ค์ํ ํคํ์ด์ด๋ค.๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ ํคํ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ํค ํ์ด ์์ฑ์ ๋๋ฌ ํคํ์ด๋ฅผ ๋ฑ๋กํด์ค๋ค.PEM ๋ก ํ๋ฉด OpenSSH ์ฐ๊ฒฐ์ ํ๋ฒ์ ํ ์ ์๋๋ฐ, ppk ํค๋ฅผ Putty ๋ก OpenSSH Key๋ก ๋ณํํ๋ ์์ ์ ๊ณต๊ฐํ๊ฒ ๋ค. ๊ทธ๋ฌ๋ฉด ์ด๋ฐ ํค๊ฐ ๋ค์ด .. DevOps/AWS 2023. 11. 27. ํจ์คํธ์บ ํผ์คX์ผ๋์: ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ถํธ ์บ ํ - ๐ Spring ๊ธฐ๋ฐ ํ ์ด ํ๋ก์ ํธ 3 ๐ ํ๋ก์ ํธ ๊ฐ์ 1๏ธโฃํ๋ก์ ํธ๋ด์ฉ ์ฌํ, ์ฌ์ ์ ๊ธฐ๋กํ๋ SNS ์๋น์ค 3๋จ๊ณ 2๏ธโฃํ๋ก์ ํธ ์ฃผ์ ๋ฐ ํ์ ๊ตฌํ ๊ธฐ๋ฅ ์ ์ ์ผ๋์ 3๏ธโฃํ๋ก์ ํธ ๋ชฉ์ Spring Boot, DB ์ค๊ณ, DB ํธ๋์ญ์ , RESTful API ์ค๊ณ ๋ฅ๋ ฅ ํฅ์, Spring Security, JWT, JUnit, OpenApi ํ์ฉ 4๏ธโฃํ๋ก์ ํธ ๊ธฐ๊ฐ 2023๋ 11์ 10์ผ (์) ~ 11์ 16์ผ(๋ชฉ) 5๏ธโฃTeam Repository https://github.com/FC-BE-ToyProject-Team8/TravelApp GitHub - FC-BE-ToyProject-Team8/TravelApp: ์ฌํ ๊ธฐ๋ก ์๋น์ค SpringBoot REST API ์๋ฒ ์ฌํ ๊ธฐ๋ก ์๋น์ค SpringBoot REST API ์๋ฒ. .. FastCampus X Yanolja TechSchool 2023. 11. 23. GitHub Actions - CI/CD ํ๊ฒฝ ์ค์ : Pull Request ์น์ธ์ ์ฐจ, ์ฝ๋ ๋ฆฌ๋ทฐ ํ๊ฒฝ ๊ตฌ์ถ CI/CD์ "CI"๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ์๋ํ ํ๋ก์ธ์ค์ธ ์ง์์ ์ธ ํตํฉ(Continuous Integration)์ ์๋ฏธํฉ๋๋ค. ์ง์์ ์ธ ํตํฉ์ด ์ ๋๋ก ๊ตฌํ๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์๋ก์ด ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๋ฅผ ๊ฑฐ์ณ ๊ณต์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณํฉ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฌ ๋ช ์ ๊ฐ๋ฐ์๊ฐ ๋์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๊ด๋ จ๋ ์ฝ๋ ์์ ์ ํ ๊ฒฝ์ฐ ์๋ก ์ถฉ๋ํ๋ ๋ฌธ์ ๋ฅผ ์ด ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ถ์ฒ : https://www.redhat.com/ko/topics/devops/what-is-ci-cd ํ์ ๋ฌธํ๊ฐ ํ๋ฐํด์ง๋ฉด์ ์ ์ง๋ณด์์ฑ(maintainable)์ ์ค์์ฑ ๋ํ ๋์์ก๋ค. ์ด๋ฒ ๋ฏธ๋ํ๋ก์ ํธ ๋ฐฑ์๋ ํ์ฅ์ด ๋๋ฉด์, ์ด ๋ถ๋ถ์ ๋ํด์ ๋์ฑ ๋๋ผ๋ ๋ฐ์ด๋ค. ๊น๋ํ ์ฝ๋๋ ์ด๋ ํ ๋ฐฉ๋ฒ๋ก ์ผ๋ก ์ ์ ์ฝ.. DevOps/Git 2023. 11. 21. ํจ์คํธ์บ ํผ์คX์ผ๋์: ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ถํธ ์บ ํ - ์ผ๋์ ํ ํฌ์ค์ฟจ ๊ณผ์ ์ค๊ฐ ํ๊ณ ์๋ ํ์ธ์. ์ค๋์ ํจ์คํธ์บ ํผ์คX์ผ๋์: ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ถํธ ์บ ํ - ์ผ๋์ ํ ํฌ์ค์ฟจ ๊ณผ์ ์ค๊ฐ ํ๊ณ ๋ฅผ ํด๋ณด๋ ์๊ฐ์ ๊ฐ๊ฒ ์ต๋๋ค. ๊ณผ์ ์ด ๋ฒ์จ ์ ๋ฐ ์ด์์ด๋ ์ง๋ฌ๋๋ฐ์... ์๊ฐ ์ฐธ ๋น ๋ฅด๋ค๋ ๊ฑธ ๋๋๋๋ค. ๋ถ๋ช ๋๋ฌด ๋์ด 7์์ ์์ํ๋๋ฐ, ๊ธ์ ์์ฑํ๋ 11์ ๋ฒ์จ ์ฒซ๋์ด ๋ ๋ฆฌ๊ณ ์๋ค์. ๋ค๋ค ๊ฑด๊ฐ ์ ์ํ์๊ณ ์ฌํด ๋ง๋ฌด๋ฆฌ๋ ์ ํ์๊ธธ ๋ฐ๋๋๋ค! ๊ทธ๋ผ ์ค๊ฐ ํ๊ณ ์์ํด ๋ณผ๊ฒ์. ์ค๋๋ง์ ์ ๋ฆฌ๋ ๋ ธ์ ํ์ด์ง๋ฅผ ๋ดค๋๋ฐ, ๊ทธ๊ฐ ์ฐธ ๋ง์ ์ผ๋ค์ด ์ง๋ ๊ฐ๋๋ผ๊ตฌ์. ๊ธ์ ์ฐ๋ ์์ ์์ ์ด์ ํ ์ดํ๋ก์ ํธ 3๋จ๊ณ๋ ๋๋๊ณ ์ด์ ๋ฏธ๋ ํ๋ก์ ํธ๊น์ง ์์ต๋๋ค. ํ ์ด ํ๋ก์ ํธ 1๋จ๊ณ 2๋จ๊ณ๋ฅผ ํ๋ฉด์ ์ ๊ฐ ์ผ๋ง๋ ์ฐ๋ฌผ์์ ๊ฐ๊ตฌ๋ฆฌ์ธ์ง๋ ๋๊ผ๊ณ , ์ํ์๋ ๋ถ๋ค๋ ๋ง์ด ๋ง๋๋ฉด์ ๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค๋ ๊ฑธ ๋ง์ด ๊นจ๋ฌ์๋ ๊ฑฐ ๊ฐ์์! ๊ทธ๋ฃน.. FastCampus X Yanolja TechSchool 2023. 11. 17. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 20 ๋ค์