FCM PUSH(IOS) - Java Spring Boot Server HTTP v1 ์ฌ์ฉํ์ฌ PUSH ์๋ฆผ ์ ์ฉํ๊ธฐ ๋๋์ด ๋ง๋ฌด๋ฆฌ ๋จ๊ณ์ ์ ์ด๋ค์ด PUSH๋ฅผ ์ ์ฉํ๊ธฐ๋ก ํ๋ค. ํ์ฌ์์ ์ฌ์ฉํ๋ PUSHY๋ ์ค๊ตญ์๋น์ค์์ ์ ์ฉํ๊ธฐ ์ํด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ์๋ FCM์ ์ฌ์ฉํด๋ณด๊ธฐ๋ก ํ๋ค. ๊ณต์๋ฌธ์๋ ์๋์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค. firebase.google.com/docs/cloud-messaging/migrate-v1?authuser=0 JAVA ์๋ฒ์์ ์ ์ฉํ๋ ๋ด์ฉ์์ ์๋ ค๋๋ฆฝ๋๋ค! ํ๋ก ํธ์์ ์ค์ ํด์ฃผ๋ ๋ถ๋ถ์ ๋ฐ๋ก ์์ต๋๋ค! ์ฐ์ ํ๋ก ํธ์์ ํ์ด๋ฒ๋ฒ ์ด์ค ์์
์ด ๋๋ฌ๋ค๊ณ ๊ฐ์ ํ๊ณ ์์ํ๊ฒ ์ต๋๋ค. ์ฑ์ถ๊ฐ๋ ํ๋ก์ ํธ์ด๋ฆ ํด๋ฆญ - ํฑ๋๋ฐํด ๋ชจ์ ํด๋ฆญํ์ฌ ํ๋ก์ ํธ ์ค์ ์ผ๋ก ๋ค์ด๊ฐ์ธ์ ์ด ์ค์ ์์์ json ํ..
์ ์ฒด ๊ธ
์ธํ๋ฐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์
๋ฌธ - ์ต๋ฒ๊ท ๋ฅผ ๊ณต๋ถํ๋ฉฐ ์ ์ํ๊ธฐ ๋
ธํธ์
๋๋ค. ์ง์ ์ค์ ์์ Java๋ฅผ ์ฐ๊ฒ ๋๋ฉด์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ค์์ฑ์ด ๋ผ๋ฅผ ๊ฐํํ๋ค... ๊ณต๋ถํ์! "Software maintenance is not keep it working like before it is keep being useful in a changing world" - Jessica Kerr ์ ์ง๋ณด์๋ ๊ทธ๋๋ก๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ฉํ๊ฒ ๋ณ๊ฒฝํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ถ์๊ณผ ์์ ์ด ๋น ๋ฅด๊ฒ ๋์ด์ผ ํ๋ค. ๋น์ฉ๊ณผ ๋ณํ ๋ฎ์ ๋น์ฉ์ผ๋ก ๋ณํํ ์ ์์ด์ผ ํ๋ค. 1. ํจ๋ฌ๋ค์ ๊ฐ์ฒด ์งํฅ, ํจ์ํ, ๋ฆฌ์กํฐ๋ธ ๋ฑ 2. ์ฝ๋, ์ค๊ณ, ์ํคํ
์ฒ DRY, TDD, SOLID, DDD, ... ํด๋ฆฐ ์ํคํ
์ฒ, MSA, ... 3. ..
์์ ํ๋ก์ ํธ๋ฅผ ๋ค์ ์จ์ผํ๋ ์ํฉ์ด ์๋ค . . . ์ด๋ฏธ ์ด์งํ์ ๋ถ๊ป Pemํค๊ฐ ์๊ณ ์ธ์์ธ๊ณ๊ฐ ์๋์ด์์ด์ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๋๋ฐ AWS์ ๋ํด ์์ ํ ๋ชจ๋ฅด๋ ์ํ์ฌ์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ ๊ธ์ ์ดํดํ๊ธฐ ์ฝ์ง ์์๋ค ใ
ใ
๊ทธ๋์,, ํ๋ฃจ ์ข
์ผ ์ฝ์งํ ๊ฒฝํ์ ๊ธฐ๋กํด์ ๋์ค์ ๋ ์ด๋ฐ ์ผ์ด ์์ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋๋ก ๊ธฐ๋กํ๋ค 1. key๋ฅผ ๋ถ์คํ EC2 ์ธ์คํด์ค๋ฅผ ์ ์งํ๋ค (stop) 2. ์๋ก์ด ์์ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค 2-1. ssh-keygen -y -f text_key.pem ํฐ๋ฏธ๋์์ ์๋ก ๋ง๋ ์ธ์คํด์ค์ ํค๊ฐ ์๋ ๊ณณ์ผ๋ก ์ด๋ํ์ฌ ์์ ๊ฐ์ด ssh-keygen ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ฃผ๋ฉด ssh-rsa๋ก ์์ํ๋ ๊ธด ํผ๋ธ๋ฆญ ํค๋ฅผ ๋ฐํํฉ๋๋ค. ์ด๊ฒ์ ๋ณต์ฌํด์ ์ ์ฅํด๋์ธ์! 3. [AWS > ELASTIC B..
์ด๋ฒ์ ์คํํธ์
์ ์ทจ์
ํ๋ฉด์ ๋ง์ ๊ฑธ ๋ฐฐ์ฐ๋ ๋์์ ๋ง์ ๊ฒ ์ซ์ด์ก๋ค. ํ์ง๋ง ๋ฒํฐ๊ณ ๋๋ฉด ์ถ์ต์ด๊ณ ๋์ ๊ฒฝ๋ ฅ์ด ๋๊ฒ ์ง ... ใ
๊ฟป ์ฐ์ ์ฒ์ ํ๋ก์ ํธ๋ฅผ ๋ค์ด๊ฐ์ ์ฒ์์ผ๋ก ์ฌ์ฉํด ๋ดค๋ค. ํ์์์ ๋ง์ด ์ฌ์ฉํ์ง ์๋๋ค๊ณ ๋ฐฐ์ ์ง๋ง ์ด๋ฒ์ ์ฌ์ฉํ๋ฉด์ ๊ฐ๋
์ฑ๋ฉด์์ ๋งค์ฐ ์ข๋ค๊ณ ๋๊ผ๊ธฐ ๋๋ฌธ์ ๋์ค์ ์ํด ์ ๋ฆฌํ๋ค! Spring Boot ์์ api ์ค๊ณ ์ค ๋ฐฐ์ก ๊ธฐ๋ฅ์ ๋ง๋ค๋ฉด์ ๋ฐฐ์ก์ํ ๊ด๋ฆฌ๋ฅผ ํ๋๋ฐ 1,2,3... ๋ฑ ์ซ์๋ก ํํ๋์ด 1์ด ๋ฌด์์ธ์ง 2๊ฐ ๋ฌด์์ธ์ง ์ผ์ผ์ด ์ฐพ์๋ณด๊ธฐ ๋ฒ๊ฑฐ๋ก์ ๋ค. ๋ํ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ ์ด๋ค ๊ฑด์ง ํท๊ฐ๋ฆด ๊ฑฐ ๊ฐ์ Enumํ์
์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. @Getter public enum SomethingStatus { PAYMENT_COMPLETE(0), PREPARING(1), CANCEL(..
ํ๋ฃจ์ข
์ผ ์ฝ์งํ๊ฑฐ ์ ๋ฆฌํฉ๋๋ค. ๋ถ๋ช
์ธ์ ๊ฐ ๋ ์ธ๊ฒ์ด์ด๋.... ์ฐ์ vscode๋ก ์์ฑํ์์ต๋๋ค. vscode ํฐ๋ฏธ๋์์ npx create-react-app lasttest lasttest๋ ํ๋ก์ ํธ ์ด๋ฆ์
๋๋ค. ๋ง๋ ํ ํฐ๋ฏธ๋์์ ํด๋น ํ๋ก์ ํธ ๋ฃจํธ ๊ฒฝ๋ก์์ npm start๋ก ์คํ์ด ๋๋์ง ํ์ธํฉ๋๋ค. ์ด ์น๊ตฌ๊ฐ ๋ฌ๋ค๋ฉด ๋ฐ๋ก node.js๋ ์ฐ๋ํ ๊ฒ์. npm install express --save ์ค์นํด์ฃผ์ธ์ express๋ NodeJS์ ์นํ๋ ์์ํฌ ์
๋๋ค. ๊ฐํธํ๊ฒ ์น์๋ฒ๋ฅผ ๊ตฌ์ถํ ์ ์์ฃ ๊ทธ๋ค์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ํด๋๋ฅผ ๋๋์ด ์ค๊ป๋ฐ์ root๊ฒฝ๋ก์ serverํด๋๋ฅผ ๋ง๋ค์ด์ค ๋ค์์ server.js ํ์ผ์ ๋ง๋ค์ด์ฃผ์ธ์ const express = require('express'); co..
๋ฉด์ ๋ณด๊ธฐ ์ํด ๊ณผ์ ๋ฅผ ํด์ผ ํ๋ค. ํ๋ก์ ํธ๋ฅผ ํ์ผ์ ๋ฐ์๋๋ฐ ๊ณ์ ๊ตฌํํด์ค๋ ๊ตฌ์กฐ์๋ ๋ง์ด ๋ฌ๋ผ์ ์๊ฐ์ ๋ง์ด ์ผ๋ค. ํ์ง๋ง ์ญ์๋ ์ธํฐ๋ท์ ์์ธํ ๋ณด๊ณ ์์ฒญ๋ ์ํ์ฐฉ์ค๋ฅผ ํ ํ์ ์ ์ํ ์ ์์๋ค. ์ธ์ ๋ค์ ์ธ ์ ์์์ง ๋ชฐ๋ผ ๊ธฐ๋กํด ๋๊ธฐ๋ก ํ๋ค. Mapper์ SQL ID์ Mapper Interface์ ๋ฉ์๋๋ช
๊ณผ ์ ํํ ๋งค์นญํด์ค๋ค๋ฉด ์๋ฐ์์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ๋๋ฌธ์ ์คํ์ ๋ํ ๊ฑฑ์ ์ด ์๋ค. ๊ฐ๋ฐ์ ๋ฐฐ์ฐ๋ฉด์ ์ฐ๋ ๊ตฌ์กฐ๋ ๋์ถฉ ์ด๋ฐ์์ด์๋ค. ๊ทธ๋ฌ๋ ์ด๋ฒ์ ๋ฐ์ ๊ณผ์ ๋ Mapper Interface, Service class, sql.xml ์ด๋ ๊ฒ 3๊ฐ์ง๋ก ์์๋ค. ์ฒ์ ๋ณธ ๊ตฌ์กฐ 1.propertis์์ ์๋ฆฌ์์ค๋ฅผ ์ด์ฉํด sql์์ dto๋ก ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ annotation์ ์ฌ์ฉํ๋ฉด ์์ฃผ ๊ฐ๋จํ..
๊ธฐ๋ณธํ์
/ ์ฐธ์กฐํ์
์ผ๋ก ๋๋ฉ๋๋ค. (immutable / mutable) ๊ธฐ๋ณธํ์
์ ์ ์, ์ค์, ๋ฌธ์, ๋
ผ๋ฆฌ ๋ฆฌํฐ๋ด์ ์ ์ฅํ๋ ํ์
์
๋๋ค. ์ข
๋ฅ ๊ธฐ๋ณธํ์
๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ณธ๊ฐ ์ ์ byte 8bit 1byte 0 char 16bit 2byte ์ ๋์ฝ๋(\u0000), ASCII, ๋ฌธ์ํ short 16bit (2byte) 0 int 32bit (4byte) 0 long 64bit (8byte) 0 ์ค์ (๋ถ๋ ์์์ ) float 32bit (4byte) 0.0F double 8bit (1byte) 0.0 ๋
ผ๋ฆฌ boolean 8bit (1byte) false ๋ฉ๋ชจ๋ฆฌ์๋ 0๊ณผ 1์ ์ ์ฅํ๋ ์ต์ ๊ธฐ์ต ๋จ์์ธ bit๊ฐ ์์ต๋๋ค. ์ด bit 8๊ฐ๋ฅผ ๋ฌถ์ผ๋ฉด byte๊ฐ ๋ฉ๋๋ค. ์ด byte๊ฐ ํด์๋ก ํํํ๋ ๊ฐ์ผ ๋ฒ..
ํน์ง ? - Spring Web MVC Framework๋ JAVA1.5๋ถํฐ Annotation์ ์ง์ํฉ๋๋ค. - xml์ค์ ์ด ๋๋ฌด ๊ธธ์ด์ง์ ๋ฐ๋ผ ๊ทธ ๋์์ผ๋ก ๋ํ๋ฌ๋ค. - ๊ธฐ๋ณธ์ ์ผ๋ก๋ ํ์ฑํ๋์ง ์๊ธฐ ๋๋ฌธ์ xml์์ ํ์ฑํ ์์
์ด ํ์ํ๋ค. ์ฅ์ ? - ์ค์ ์ด ๊ฐํธํด ์ง, view ํ์ด์ง์ ๊ฐ์ฒด ๋๋ ๋ฉ์๋์ ๋งตํ์ด ๋ช
ํํด ์ง. Annotation์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ค์ ์ด ํ์ํฉ๋๋ค. 3๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. 1) CommonAnnotationBeanPostProcessor์ ํด๋์ค ์ค์ ํ์ผ์ ๋น๊ฐ์ฒด๋ก ๋ฑ๋กํ์ฌ ์ด๋
ธํ
์ด์
์ผ๋ก ์ฌ์ฉ 2) ํ๊ทธ ์ฌ์ฉ : ์ด๋ฏธ ๋ฑ๋ก๋ ๋น๋ค์ ์ด๋
ธํ
์ด์
์ ํ์ฑํ 3) : ํน์ ํจํค์ง ์์ ํด๋์ค๋ค์ ์ค์บํ๊ณ , Annotation์ ํ์ธ ํ bean ์ธ์คํด์ค๋ฅผ ์์ฑ - ์คํ
..
์ ์ฅ ์์น ์ฟ ํค : ํด๋ผ์ด์ธํธ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ ํ๋ ๋ฉ๋ชจ๋ฆฌ or ํ๋๋์คํฌ ์ธ์
: ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ ๋ง๋ฃ ์์ ์ฟ ํค : ์์ฑ ์ค์ ์ ์ด์ฉํด ์ญ์ ๋ ๋ ์ง๋ฅผ ์ ํ ์ ์๋ค. ์ธ์
: ํด๋ผ์ด์ธํธ๊ฐ ๋ก๊ทธ์์ํ๊ฑฐ๋, ์ค์ ๋ ๊ธฐ๊ฐ๋์ ๋ฐ์์ด ์์ผ๋ฉด ๋ฌดํจํ ๋๊ธฐ ๋๋ฌธ์ ์์ ์ ์ ์ ์๋ค. ๋ฆฌ์์ค ์ฟ ํค : ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋๊ณ ํด๋ผ์ด์ธํธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์ธ์
: ์๋ฒ์ ์ ์ฅ๋์ด ์๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ก๋ฉ ๋๊ธฐ ๋๋ฌธ์ ์ธ์
์ด ์๊ธธ ๋๋ง๋ค ๋ฆฌ์์ค ์ฐจ์ง ์ฉ๋์ ํ ์ฟ ํค : ํด๋ผ์ด์ธํธ๋ ๋ชจ๋ฅด๊ฒ ์ค์ ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ฉ์ธ๋น 20, ํ๋์ ์ฟ ํค๋น 4KB๋ก ์ ํ ์ธ์
: ํด๋ผ์ด์ธํธ๊ฐ ์ ์ํ๋ฉด ์๋ฒ์ ์ํด ์์ฑ๋์ด ๊ฐ์๋ ์ฉ๋ ์ ํ ์์ ์ ์ฅํ์ ์ฟ ํค : Text ์ธ์
: Object
Servlet์์ 1:1mapping์ ๋ณด์ํด์ ์๋์ผ๋ก ๋ถ๊ธฐ, ์๋์ผ๋ก ์์ฑํ๋ฉด ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฌ๊ธฐ์ ์ด Controller๋ ๋ค์ํ ์์ฒญ์ ์ ์ดํ์ฌ J2EE Pattern: frontController ๋ผ๊ณ ํฉ๋๋ค. Business Layer์์ handler mapper๋ฅผ ์๊ณ ๊ทธ๋ฆฌ์ง ์์๋๋ฐ ์์๋์ด์ผ ํฉ๋๋ค. Handler Mapping : dispatcherSevlet์ผ๋ก ๋ฐ์ ์์ฒญ -> Controller ๋ณด๋-> ์์ฒญ์ด ์ด๋ค ๋งคํ์ธ์ง ๊ทธ ๋ฐฉ๋ฒ์ ์ ํด์ฃผ๋ ํด๋์ค ์
๋๋ค. Spring 3๋ ์๋์๋ฆฌ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. 1. DI/IoC - Bean Spring ์ฌ์ฉํ ์ ์๋๋ก ๋ฑ๋ก - Life-Cycle์ ๋ฐ๋ผ๊ฐ์ง ์๊ณ ์ฌ์ฉ POJO๋ฅผ Spring beanํน์ @Annotation์..
Spring FrameWork๋ฅผ ์ค๋ช
ํ๊ธฐ ์ Servlet์ ๋จผ์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค. Servlet์ด๋ผ ํ๋ฉด 3๊ฐ์ง๋ฅผ ์์๋๋ฉด ์ข์์. Url-Mapping, Hierarchy, Life-cycle์
๋๋ค. ํ๋์ฉ ์์๋ณผ๊ฒ์! Url-Mapping 1:1 servlet-mapping ๋ธ๋ผ์ฐ์ ์์ ws์ ์์ฒญํ๋ ์ฃผ์์ ํด๋น ์ฃผ์์ ์ฒ๋ฆฌ ๋ก์ง์ 1:1 ๋งคํํ๋ค ๋ฌธ์ : ๋๋ฌด ๋ง์ mapping์ผ๋ก ์ฝ๋๊ฐ ๋ณต์กํด์ง๋ค. Life-Cycle (์๋ช
์ฃผ๊ธฐ) HttpServlet -> OCP(Open Closed Programming) ์ด๊ธฐํ -> ์๋น์ค -> ์ข
๋ฃ init() service() distroy() doGet() doPost() doDelete() Hierarchy ๊ณ์ธต๊ตฌ์กฐ HttpServelt์ ์์๋ฐ์ ..
Window - Eclipse Marketplace - sts ๊ฒ์ ์๋ก์ด Spring ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค. ํ๋ก์ ํธ ์ค๋ฅธ์ชฝ ํด๋ฆญ - properties - Project Facets ์ ์ฉํด์ฃผ์๊ณ , pon.xml ๋ค์ด๊ฐ๋๋ค. ์ฒดํฌํ ๋ถ๋ถ ๋ณ๊ฒฝ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ์คํฌ๋กค ๋ฐ์ผ๋ก ์ญ ๋ด๋ ค์ plugin๋ ๋ฐ๊ฟ์ค๊ฒ์~ ์ด๋ ๊ฒ ํ๊ณ ์ ์ฅํ๋ฉด ๋ฉ์ด๋ธ์ด ์ด์ฌํ ๋ค์ด๋ก๋ํฉ๋๋ค. ์ด์ ๋ง๋ฐํฐ์ค, ์คํ๋ง ์ฐ๊ฒฐ ๊ด๋ จ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด๋ก๋ํ๊ณ ์ค์ ํด ์ค๊ฒ์. ์ผ๋จ, ์ ๋ spring ์ค์ ํ์ผ์ ํ ๋ฒ์ ๋ณด๊ณ ์ถ๊ธฐ ๋๋ฌธ์ web.xml ์์ ์ด ๋ถ๋ถ์ ํด๋์ ๋ฃ์ด ์ฃผ์์ด์ ๊ทธ๋ฌ๋ฉด ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๊ฐ์ด ๊ด๋ฆฌํ ์ ์์ต๋๋ค! ๊ทธ๋ฆฌ๊ณ ์ค์ํ๊ฒ์ filter๋ฅผ ์ด์ฉํด์ ์ธ์ฝ๋ฉ์ ํด์ค๋๋ค. web.xml์ ์์ฑํด์ฃผ์๋ฉด ..