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

Maria DB JSON Format ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

Json Format { "DATA":{ "PARAM1":"123123", "PARAM2":"TEST", "PARAM3":{ "PARAM4":"0", "PARAM5":6000 } } } Json data ์ค‘ PARAM1 ๊ฐ’ ์ถœ๋ ฅ SELECT JSON_EXTRACT(DATA.STR, '$.DATA.PARAM1') AS PARAM1 FROM ( SELECT '{ "DATA":{ "PARAM1":"123123", "PARAM2":"TEST", "PARAM3":{ "PARAM4":"0", "PARAM5":6000 } } }' AS STR FROM DUAL ) DATA Json data ์ค‘ PARAM3 ๊ฐ€์ ธ์˜ค๊ธฐ SELECT JSON_EXTRACT(DATA.STR, '$.DATA.PARAM3.PARAM4') AS..

๊ตฌ๊ธ€ ์ธ์•ฑ ๊ฒฐ์ œ ๊ฒ€์ฆ API ๊ด€๋ จ ์ด์Šˆ.. Google_Service_AndroidPublisher

๊ตฌ๊ธ€ API์˜ AndroidPublisher๋ฅผ ํ†ตํ•ด ์•ˆ๋“œ๋กœ์ด๋“œ ์ธ์•ฑ ๊ฒฐ์ œํ•œ ๋‚ด์—ญ์˜ ๊ฒ€์ฆ ์ฝ”๋“œ ์งœ์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š”๋ฐ ์ƒ๊ธด ๋ฌธ์ œ ๋ชจ๋“  ๊ถŒํ•œ์€ Perfect.. ๊ณ„์ • ๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ด์ง€๋งŒ, ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์— ์„œ๋น„์Šค ๊ณ„์ •์„ ์ถ”๊ฐ€ํ•ด "์†Œ์œ ์ž" ๊ถŒํ•œ์„ ์คฌ๊ณ , Json ํŒŒ์ผ์„ ๋ฐ›๊ณ  ์ฝ”๋“œ๋ฅผ ๋„ฃ์—ˆ๋Š”๋ฐ.. ์˜... ์•ˆ๋œ๋‹ค ใ…†ใ…‚ ์•„๋ž˜๋Š” ๊ฒ€์ฆ ๊ด€๋ จ ์ฝ”๋“œ. ๋กœ๊ทธ์ธ ๋ถ€ํ„ฐ, ๊ฒฐ์ œ ๋‚ด์šฉ ๊ฒ€์ฆ $this->client = new Google_Client(); $this->client->setAuthConfig(getenv('GOOGLE_SDK_FILE')); $this->service = new Google_Service_AndroidPublisher($this->client); $this->client->addScope('h..

[summary] แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผ แ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ - แ„แ…ฉแ„ƒแ…ณแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผ แ„‡แ…ฎแ„แ…ณ, แ„‹แ…ฐแ†ธ MVC, DB แ„Œแ…ฅแ†ธแ„€แ…ณแ†ซ แ„€แ…ตแ„‰แ…ฎแ†ฏ day 3

JPA - ์ž๋ฐ” ORM ํ‘œ์ค€, ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ. Object Relational table Mapping - ๊ธฐ์กด์˜ sql ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ ์„ค๊ณ„์—์„œ ๊ฐ์ฒด ์ค‘์‹ฌ ์„ค๊ณ„๋กœ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ ์šฉ configuration - spring.jpa.hibernate.ddl-auto - DDL (๋ฐ์ดํ„ฐ ์ •์˜์–ด. create, alter, drop... ๋“ฑ๋“ฑ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๊ด€๋ จ ๋ช…๋ น์–ด) Auto Generation ์˜ต์…˜ (DDL SQL ์Šคํฌ๋ฆฝํŠธ ์ž๋™ ์ƒ์„ฑ) https://docs.spring.io/spring-boot/docs/1.1.0.M1/reference/html/howto-database-initialization.html#howto-initialize-a-database-using-hibernate 59. Datab..

[summary] แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผ แ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ - แ„แ…ฉแ„ƒแ…ณแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผ แ„‡แ…ฎแ„แ…ณ, แ„‹แ…ฐแ†ธ MVC, DB แ„Œแ…ฅแ†ธแ„€แ…ณแ†ซ แ„€แ…ตแ„‰แ…ฎแ†ฏ day 2

์Šคํ”„๋ง๋ถ€ํŠธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ JUnit - main ๋ฉ”์„œ๋“œ ํ†ตํ•œ ์‹คํ–‰ - ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ ํ†ตํ•œ ์‹คํ–‰ service ํŒจํ‚ค์ง€๋Š” ์ฃผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‹คํ–‰ - ๋น„์ฆˆ๋‹ˆ์Šค์— ์˜์กด์  repository๋Š” ์ €์žฅ์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์—ญํ• ์„ ํ•จ(findAll, findById) - ๋‹จ์ˆœ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ƒ์„ฑ ๋‹จ์ถ•ํ‚ค ์ปค๋งจ๋“œ ์‰ฌํ”„ํŠธ T Test ์ฝ”๋“œ ์ž‘์„ฑ์‹œ given, when, then ์ˆœ์œผ๋กœ ๊ฒ€์ฆ ์ฒ˜๋ฆฌ * ์™ธ๋ถ€ ์˜์กด์„ฑ ์ฃผ์ž… DI(Dependancy injection) ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• - ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ • -> @Component (๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋ก), @Autowired, @Controller, @Service... etc ์–ด๋…ธํ…Œ์ด์…˜ ์„ค์ • - ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šค..

[summary] ์Šคํ”„๋ง ์ž…๋ฌธ - ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ, ์›น MVC, DB ์ ‘๊ทผ ๊ธฐ์ˆ  day1

[์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ] ๊ธฐ์กด์˜ ๋ชจ๋ธ1 ๋ฐฉ์‹ - View ๋‹จ์—์„œ ๋ชจ๋“ ๊ฑธ ์ฒ˜๋ฆฌ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋“ฑ์„ jsp๋กœ ์ฒ˜๋ฆฌ MVC ํŒจํ„ด ๋ฐฉ์‹ - ๋ชจ๋ธ, ๋ทฐ, ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ทฐ์—์„œ๋Š” ํ™”๋ฉด ์ถœ๋ ฅ, ๋ชจ๋ธ์—๋Š” ํ™”๋ฉด์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ด๋Š” ์—ญํ• ์„ ํ•จ ํƒ€์ž„๋ฆฌํ”„ Thymeleaf - Spring Boot์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ทฐ ํ…œํ”Œ๋ฆฟ ์ข…๋ฅ˜ ์ค‘ ํ•˜๋‚˜ - static(์ •์ ), templates(๋™์ ) ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์—”๋“œํฌ์ธํŠธ๊ฐ€ (request mapping) ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ •์  ํ…œํ”Œ๋ฆฟ์—์„œ ์ฐพ์•„ ๋ Œ๋”๋ง๋˜์ง€ ์•Š์€ html ํŒŒ์ผ์„ ๋ฆฌํ„ดํ•œ๋‹ค. Getter & Setter - ์ž๋ฐ” Bean ํ‘œ์ค€ ๊ทœ์•ฝ - ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ ๋ฐฉ์‹ - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ ์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅ @ResponseBody ์–ด๋…ธํ…Œ์ด์…˜ ..

intelli J์—์„œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ, Spring Initializr ์•ˆ๋ณด์ด๋Š” ๊ฒฝ์šฐ

์ธํ…”๋ฆฌ์ œ์ด์—์„œ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ, ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒ„์ „์ด ์•„๋‹˜์—๋„ Spring Initializr๊ฐ€ ์•ˆ๋ณด์ž„.. ์œˆ๋„์šฐ์—์„œ ๋งฅ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  intelli J๋กœ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒจ์œผ๋กœ ์ƒ์„ฑํ•˜๋ คํ•˜๋Š”๋ฐ ๊ท€์ฐฎ๊ฒŒ ๋ผ๋ฒ„๋ฆผ. spring.io์—์„œ ์ƒ์„ฑ๊ฐ€๋Šฅํ•˜๋‚˜, ์ด ์ข‹์€ IDE๋ฅผ ๋ˆ์ฃผ๊ณ  ์“ฐ๋Š”๋ฐ ์™œ..?ใ…Ž ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ, ์ฃ„๋‹ค ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒ„์ „์ด๋ผ์„œ ์–ด์ฉ”์ˆ˜์—†๋‹ค๋Š”๋ฐ.. ๋‚œ ๋ผ์ด์„ผ์Šค ๊ตฌ๋งค์ž๋ž€ ๋ง์ด์ง€. ์ƒ๋‹จ ๋ฉ”๋‰ด 'Preferences > plugins > Spring Assistant ๊ฒ€์ƒ‰ > install > restart' ์•„์˜ค ์‰ฌ์›Œ..... ์ฐพ๋Š”๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง„ ์•Š์•˜์ง€๋งŒ ์ดˆ๊ธฐ ์„ค์ •์€ ์–ธ์ œํ•ด๋„ ๊ท€์ฐฎ๊ณ  ๊นŒ๋จน์œผ๋‹ˆ ๊ธฐ๋ก!

Mac Alias ์„ค์ •

source ~/.zshsource ~/.bash_profile ํ•ด์ค˜๋„ ๊ทธ ๋•Œ ๋ฟ. ํ„ฐ๋ฏธ๋„ ์ฐฝ์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜ ์ƒˆ๋กœ ์—ด ๋•Œ ๋งˆ๋‹ค ์ € ์ง€๋ž„ํ•ด์„œ ๊ฐœ๋นก  ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ ํ•ด์„œ ์‹คํ–‰ํ•˜๋‹ˆ ์•„์ฃผ ์ž˜๋จ. + ์œˆ๋„์šฐ/๋ฆฌ๋ˆ…์Šค ์‰˜์—์„œ ์ž˜ ์“ฐ๋˜ ๋ช…๋ น์–ด๋งŒ ๋„ฃ์–ด๋„ ๋Œ vi ~/.zshrc#.bash_profileif [ -f ~/.bashrc ]; then. ~/.bashrcfi#============================================================## ALIASES AND FUNCTIONS# Arguably, some functions defined here are quite big.# If you want to make this file smaller, these functions ca..

๋„์ปค PHP7.4, CI4(์ฝ”๋“œ์ด๊ทธ๋‚˜์ดํ„ฐ4) ์„ค์น˜. ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ

์ค€๋น„ ์‚ฌํ•ญ 1. ๋„์ปค ์ค€๋น„ 2. ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ PHP7.2 ๋ฒ„์ „ ์ปจํ…Œ์ด๋„ˆ๋กœ ์„ค์น˜ํ•˜๊ณ  PHP7.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ ์ฝ”๋“œ์ด๊ทธ๋‚˜์ดํ„ฐ4 ์„ค์น˜ ์ง„ํ–‰ ํ•จ 1. docker ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ docker pull tplatform/aws-linux-2-httpd24-php72 2. ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ docker run -d --name jay -p 81:80 -v J:\j\:/var/www/html tplatform/aws-linux-2-httpd24-php72 * docker run -d detached ๋ชจ๋“œ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ * --name jay jay ๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ * -p 81:80 127.0.0.1:81 ๋กœ ์ ‘์† ํ•˜๋„๋ก 81๋ฒˆ ํฌํŠธ ์ง€์ • * -v J:\j\:/var/www/html J๋“œ๋ผ์ด๋ธŒ ..

PHP for, while, foreach n๊ฐœ์”ฉ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅํ•˜๊ธฐ

for, while, foreach ๋“ฑ์„ ๋ฐ˜๋ณต๋ฌธ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋ฐ˜๋ณต๋ฌธ์€ ์ž‘์„ฑ๋ฒ•๋งŒ ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅผ ๋ฟ ๋ชจ๋“  ์–ธ์–ด์—์„œ ์ œ๊ณต๋˜๊ณ  ์žˆ๋‹ค ์ด๊ฐœ์ˆ˜ ๊ธฐ์ค€ + ๋˜๋Š” - ํ•œ ๊ฐ’์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ์‹คํ–‰ํ•˜๊ณ , ๋ฃจํ”„(loof)์— ๋น ์ง€์ง€ ์•Š๋„๋ก ์กฐ์‹ฌํ•ด์•ผํ•จ ๋ณดํ†ต while์ด๋‚˜ foreach๋Š” DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๋ฐฐ์—ด์— ๋‹ด์•„ ์ถœ๋ ฅ ํ•  ๋•Œ ๋งŽ์ด ์”€ 1์ค„์— 3๊ฐœ์”ฉ ์ถœ๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ํ•จ ํ•ด๋ณด์ž ์•„๋ž˜ ์˜ˆ์ œ๋“ค์€ 3๊ฐœ์”ฉ์ด์ง€๋งŒ, '3'์„ ๋‹ค๋ฅธ ์ˆซ์ž๋กœ ๋ฐ”๊พธ๋ฉด 2๊ฐœ์”ฉ, 4๊ฐœ์”ฉ, 5๊ฐœ์”ฉ... 10๊ฐœ์”ฉ ์ถœ๋ ฅ ๊ฐ€๋Šฅํ•˜๋‹ˆ ์ˆซ์ž๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๊ฐ€๋Šฅํ•จ for๋ฌธ //1๋ถ€ํ„ฐ 10๊นŒ์ง€ ์ถœ๋ ฅ for($i = 1; $i

Spring Boot ์—๋Ÿฌ ํ™”๋ฉด ์ถœ๋ ฅ (Thymeleaf)

์Šคํ”„๋ง ๋ถ€ํŠธ (Spring Boot)์˜ ์—๋ŸฌํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ, ๋ณ„๋„์˜ ์—๋Ÿฌ ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—… ํ–ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ์—”์ง„์€ tymeleaf๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์‚ฌ์‹ค, 404๋‚˜ 500 ๋“ฑ๋“ฑ ๊ฐ http status ์ฝ”๋“œ์— ๋งž๊ฒŒ ํ…œํ”Œ๋ฆฟ ์—”์ง„๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋˜์ง€๋งŒ, ๋ชจ๋“  ์—๋Ÿฌ ํ™”๋ฉด์„ ๋™์ผํ•˜๊ฒŒ ์ถœ๋ ฅ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ Error Controller๋ฅผ ์ƒ์„ฑํ•ด ์ฒ˜๋ฆฌํ•ด์ฃผ๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ http status๊ฐ€ 200์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ํ™”์ดํŠธ๋ผ๋ฒจ ์—๋Ÿฌ ํ™”๋ฉด์ด ์ถœ๋ ฅ๋œ๋‹ค ๋งŒ์•ฝ ์ฝ”๋“œ๋ณ„๋กœ ์—๋Ÿฌํ™”๋ฉด์„ ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ํ…œํ”Œ๋ฆฟ ํด๋”์•„๋ž˜์— status code์— ๋งž๋Š” htmlํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์„œ ๋„ฃ์–ด์ฃผ๋ฉด ๋จ - resources > templates > error ๊ทผ๋ฐ ๋‚˜๋Š”, http status code๊ฐ€ 200์ด ์•„..