๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

๊ฐœ๋ฐœ์ด์•ผ๊ธฐ

[Mysql] row_number() ๊ทธ๋ฃน๋ณ„ ํ–‰๋ฒˆํ˜ธ ์ถœ๋ ฅ ์ฟผ๋ฆฌ ๊ทธ๋ฃน๋ณ„ ์ˆœ์„œ ์ถœ๋ ฅ ์ฟผ๋ฆฌ Mysql row_number() mysql 8 ๋ฒ„์ „ ์ด์ƒ์—์„œ๋Š” row_number() ํ•จ์ˆ˜๋ฅผ ์ง€์›ํ•œ๋‹ค. ์™€.. ๊ฐœ์ฉ”์–ด. ์˜›๋‚  ์˜›์ ์—๋Š” row_number() ํ•จ์ˆ˜๊ฐ€ ์—†์–ด์„œ ์ฟผ๋ฆฌ ๊ธธ์ด๋Š” ๋ฌด์Ÿˆ๊ฒŒ ๊ธธ๊ณ , ์„ฑ๋Šฅ๋„ ๊ตฌ๋ ค์„œ ๊ฑ ์ฝ”๋“œ๋กœ ๋•Œ๋ ค ๋ฐ•์•˜๋˜.. ์˜ค๋ผํด ๋ณด๊ณ  ์นจ ํ˜๋ฆฌ๋˜ ์‹œ์ ˆ์ด ์žˆ์—ˆ๋Š”๋ฐ.. ใ…Ž ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•์€ ์š”๋กœ์ผ€ ์“ฐ๊ณ , ROW_NUMBER() OVER ( ) : PARTITION BY ,[{,}...] ์ด ๋ถ€๋ถ„์€ ํŠน์ • ์ปฌ๋Ÿผ์ด๋‚˜ ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃน์ง€์–ด ์ˆœ๋ฒˆ์„ ๋งค๊ฒจ์ค€๋‹ค. group_by์™€ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋จ. ํ•˜๋‚˜๋งŒ ์“ธ ์ˆ˜ ์žˆ๋Š”๊ฑด ์•„๋‹ˆ๊ณ , ์ฝค๋งˆ(,)๋กœ ์—ฌ๋Ÿฌ๊ฐœ ์ง€์ •์ด ๊ฐ€๋Šฅ. ๊ตณ์ด ๋„ฃ์„ ํ•„์š” ์—†๋‹ค๋ฉด ์•ˆ๋„ฃ์–ด๋„ ์ƒ๊ด€์—†์Œ. : ORDER BY [ASC|DESC],[{,}...] ์ˆœ๋ฒˆ์„ ๋งค๊ธธ ๋•Œ,.. ๋”๋ณด๊ธฐ
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 ์–ด๋…ธํ…Œ์ด์…˜ .. ๋”๋ณด๊ธฐ
๋„์ปค 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 ๋”๋ณด๊ธฐ

๋ฐ˜์‘ํ˜•