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

    JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ 2์žฅ JPA ์‹œ์ž‘ (๋งคํ•‘ ์–ด๋…ธํ…Œ์ด์…˜, persistence.xml, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฉ์–ธ, ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, ๊ฐ์ฒด์˜ ๋“ฑ๋ก,์ˆ˜์ •,์‚ญ์ œ,์กฐํšŒ, JPQL)

    JPA๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ด๋ธ” ํ•˜๋‚˜๋ฅผ ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ/์กฐํšŒํ•˜๋Š” ๊ฐ„๋‹จํ•œ JPA ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ ์ดํด๋ฆฝ์Šค์™€ DB ์„ค์น˜ JPA์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์ • JPA ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ 2.3.1 ๋ฉ”์ด๋ธ๊ณผ ์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฉ”์ด๋ธ์„ ์‚ฌ์šฉํ•ด์„œ ๊ด€๋ฆฌํ•จ ๋ฉ”์ด๋ธ : ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๋„๊ตฌ ์ตœ๊ทผ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฉ”์ด๋ธ ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋นŒ๋“œํ•จ pom.xml์— ์‚ฌ์šฉํ•  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ ์–ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ ๋‚ด๋ ค๋ฐ›์•„์„œ ๊ด€๋ฆฌํ•ด์คŒ ์— ์‚ฌ์šฉํ•  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์ • (groupId, artifactId, version๋งŒ ์ ์–ด์ฃผ๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ jarํŒŒ์ผ์„ ๋ฉ”์ด๋ธ ๊ณต์‹ ์ €์žฅ์†Œ์—์„œ ๋‚ด๋ ค๋ฐ›์•„ ์ถ”๊ฐ€ํ•ด์คŒ) 2.4 ๊ฐ์ฒด ๋งคํ•‘ ํšŒ์› ํด๋ž˜์Šค์™€ ํšŒ์› ํ…Œ์ด๋ธ”์„ ๋งคํ•‘ ํšŒ์› ํด๋ž˜์Šค์— JPA๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋งคํ•‘ ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ํ•จ..

    JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1์žฅ JPA ์†Œ๊ฐœ (SQL์„ ์ง์ ‘ ๋‹ค๋ฃฐ ๋•Œ์˜ ๋ฌธ์ œ์ , ํŒจ๋Ÿฌ๋‹ค์ž„ ๋ถˆ์ผ์น˜, JPA์˜ ์žฅ์ )

    JPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SQL ์ž‘์„ฑ ์—†์ด ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๊ณ , ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• DB์˜ ์ฐจ์ด๋„ ์ค‘๊ฐ„์—์„œ ํ•ด๊ฒฐํ•ด์คŒ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ™•์—ฐํžˆ ์ข‹์•„์ง ์ง€๋ฃจํ•˜๊ณ  ๋ฐ˜๋ณต์ ์ธ CRUD SQL์„ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•ด์ค„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด ๋ชจ๋ธ๋ง๊ณผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์ด์˜ ์ฐจ์ด์  ํ•ด๊ฒฐํ•ด์คŒ JPA๋Š” ์‹คํ–‰ ์‹œ์ ์— ์ž๋™์œผ๋กœ SQL์„ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ•จ ์ฑ…์˜ ๊ตฌ์„ฑ 1~9์žฅ (์ด๋ก ) : ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ”์„ ์–ด๋–ป๊ฒŒ ๋งคํ•‘ํ•˜๋Š” ๋ฐฉ๋ฒ•, JPA์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ 10์žฅ : JPQL (Java Persistence Query Language, ๊ฐ์ฒด์ง€ํ–ฅ ์ฟผ๋ฆฌ์–ธ์–ด), ๋„ค์ดํ‹ฐ๋ธŒ SQL 11~12์žฅ : ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์™€ JPA๋ฅผ ์‚ฌ์šฉํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ (์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA, QueryDSL) 13~16์žฅ : ํŠธ๋žœ์žญ์…˜, ๋ฝ, ์บ..

    URI vs. URL

    **URI**์™€ **URL**์€ ์›น์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด **URI**๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด์ด๊ณ , **URL**์€ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์ •ํ•˜๋Š” ํŠน์ˆ˜ํ•œ ์œ ํ˜•์˜ URI URI (Uniform Resource Identifier): ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด URL๊ณผ URN์˜ ์ƒ์œ„ ๊ฐœ๋…์ž„ (์„œ๋ธŒ ํƒ€์ž…๋“ค์„ ํฌ๊ด„ํ•˜๋Š” ๊ฐœ๋…) URL๊ณผ URN์€ ๋ชจ๋‘ URI์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ URL (Uniform Resource Locator): ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” URI์˜ ํ•˜์œ„ ๊ฐœ๋… ์ฃผ๋กœ ์›น์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ํŠน์ • ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ง€์ • (์˜ˆ: HTTP, HTTPS ๋“ฑ) ์˜ˆ: https://www.example.com/page.html URN (Uniform..

    ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ json-simple, unirest, nimbusds

    OpenSource Libraries : json-simple, unirest, nimbusds json-simple: JSON ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜๊ณ  ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ€๋ฒผ์šด Java ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ JSON ๋ฐ์ดํ„ฐ๋ฅผ Java์—์„œ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ ๊ธฐ๋Šฅ ๋ฐ ํŠน์ง•: JSON ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ Java ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, Java ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์ž์—ด๋กœ ์ง๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ์Œ ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ€๋ฒผ์šฐ๋ฉฐ, ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์ž‘์€ ํ”„๋กœ์ ํŠธ๋‚˜ ๊ฐ„๋‹จํ•œ JSON ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•จ unirest: ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” HTTP ์š”์ฒญ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ **unirest**๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„ํŽธํ•œ HTTP ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ ๊ธฐ๋Šฅ ๋ฐ ํŠน์ง•: ๊ฐ„๋‹จํ•œ API๋ฅผ ํ†ตํ•ด HTTP ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๊ณ  ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ..

    Fine-grained access

    Fine-grained access : ์„ธ๋ฐ€ํ•œ ์ˆ˜์ค€์˜ ์ ‘๊ทผ ์ œ์–ด ์‚ฌ์šฉ์ž๋‚˜ ์—ญํ• ์ด ํŠน์ • ๋ฐ์ดํ„ฐ, ๋ฆฌ์†Œ์Šค ๋˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์‚ฌ์šฉ์ž์˜ ์ „๋ฐ˜์ ์ธ ๊ถŒํ•œ์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํŠน์ • ์กฐ๊ฑด์ด๋‚˜ ๊ทœ์น™์— ๋”ฐ๋ผ ์ƒ์„ธํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•จ Fine-grained access๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•ด๋‹น ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ฝ๊ธฐ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌ๋˜๊ณ , ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ ‘๊ทผ์€ ์ œํ•œ๋  ์ˆ˜ ์žˆ์Œ ์ด์™€ ๊ฐ™์€ ์ ‘๊ทผ ์ œ์–ด ๋ฐฉ์‹์€ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ตœ์†Œํ•œ์˜ ํ•„์š”ํ•œ ๋ฒ”์œ„๋กœ ์ œํ•œํ•˜์—ฌ ๋ฏผ๊ฐํ•œ ์ •๋ณด์˜ ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Œ ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋จ **/Entitlement_WebApp/protected/๋กœ ์‹œ์ž‘..

    4. Single Sign-On with SAML

    SSO (Single Sing-On) User๊ฐ€ Credential์„ ํ•œ ๋ฒˆ ์ œ๊ณตํ•˜๋ฉด ๋‹ค์ˆ˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— sign in์„ ํ•˜๋ฉด, ๊ฐ™์€ ์„ธ์…˜์„ ๊ณต์œ ํ•˜๋Š” ๋‹ค๋ฅธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ SAML (Security Assertion Markup Language) XML ๊ธฐ๋ฐ˜์˜ ๋งˆํฌ์—… ์–ธ์–ด federated authentication, sso ๊ตฌํ˜„์— ์“ฐ์ด๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ์›น ๊ธฐ๋ฐ˜ ์‹ฑ๊ธ€ ์‚ฌ์ธ์˜จ (Single Sign-On, SSO)์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ์ค‘ ํ•˜๋‚˜ Security information์ด ์–ด๋–ป๊ฒŒ xml ๋ฉ”์‹œ์ง€๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด ์‹ ๋ขฐ๋œ ๋‹น์‚ฌ์ž๋“ค ๊ฐ„์— ์ „๋‹ฌ๋˜๋Š”์ง€ ์ •์˜ํ•จ IdP์™€ SP ์‚ฌ์ด์—์„œ authentication๊ณผ authorization ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„..

    Validate vs. Verify

    Validate (๊ฒ€์ฆํ•˜๋‹ค): ์ฃผ๋กœ ์ผ๋ จ์˜ ๊ทœ์น™์ด๋‚˜ ํ‘œ์ค€์— ๋”ฐ๋ผ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ํ™•์ธํ•˜๋Š” ํ–‰์œ„ ์ •๋ณด๋‚˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ์ง€๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ํŠน์ • ๊ทœ์น™์ด๋‚˜ ์กฐ๊ฑด์„ ๋”ฐ๋ฅด๋Š”์ง€๋ฅผ ๊ฒ€์ฆ ์˜ˆ : ์–ด๋–ค ๋ฌธ์„œ๊ฐ€ ์ •ํ•ด์ง„ ์–‘์‹์— ๋งž๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ, ์„œ๋ช…์ด ์œ ํšจํ•œ ์„œ๋ช…์ธ์ง€ ํ™•์ธ Verify (ํ™•์ธํ•˜๋‹ค): ์ฃผ๋กœ ์ฃผ์žฅ์ด๋‚˜ ์ฃผ์žฅ๋œ ์‚ฌ์‹ค์„ ์‚ฌ์‹ค ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ฆ๋ช…ํ•˜๋Š” ํ–‰์œ„ ๋” ์—„๋ฐ€ํ•œ ์ ˆ์ฐจ๋‚˜ ์ฆ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค ๊ฒƒ์ด ์‚ฌ์‹ค์ž„์„ ํ™•์ธ ์–ด๋–ค ์‚ฌ๋žŒ์ด ์ž์‹ ์ด ์ฃผ์žฅํ•˜๋Š” ์‹ ์›์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‹ ๋ถ„์ฆ์„ ์ œ์‹œ, ์„œ๋ช…์ด ์ •๋ง๋กœ ํŠน์ • ๊ฐœ์ธ์— ์˜ํ•ด ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

    ์ด๊ฒƒ์ด ๋ฆฌ๋ˆ…์Šค๋‹ค ch4 ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ณธ ๋ช…๋ น์–ด(15๊ฐœ) ์‚ฌ์šฉ ์˜ˆ ์ •๋ฆฌ

    1. ls - ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก ํ™•์ธ ls: ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ํŒŒ์ผ ๋ชฉ๋ก์„ ํ‘œ์‹œ ls /etc/sysconfig /etc/sysconfig: ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชฉ๋ก์„ ํ‘œ์‹œ ls -a: ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชฉ๋ก(์ˆจ๊น€ ํŒŒ์ผ ํฌํ•จ)์„ ํ‘œ์‹œ ls -l: ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชฉ๋ก์„ ์ž์„ธํžˆ ํ‘œ์‹œ ls *.cfg: ํ™•์žฅ์ž๊ฐ€ cfg์ธ ๋ชฉ๋ก์„ ํ‘œ์‹œ ls -l /etc/sysconfig/a*: /etc/sysconfig ๋””๋ ‰ํ„ฐ๋ฆฌ ์ค‘ ์•ž ๊ธ€์ž๊ฐ€ 'a'์ธ ๊ฒƒ์˜ ๋ชฉ๋ก์„ ์ž์„ธํžˆ ํ‘œ์‹œ 2. cd - ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋™ cd: ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ cd ~rocky rocky: ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ cd ..: ๋ฐ”๋กœ ์ƒ์œ„์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ cd /etc/sysconfig: /etc/sysconfig ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ (์ ˆ๋Œ€ ๊ฒฝ๋กœ)..