soogoori

Spring/Spring & Spring Boot

[Spring] Example<T> ์ธํ„ฐํŽ˜์ด์Šค

์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค๊ฐ€ Example ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. Example๋ฅผ ์–ธ์ œ ์‚ฌ์šฉํ•˜๊ณ , ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.  Example ์ธํ„ฐํŽ˜์ด์Šค๋ž€ ?Spring Data Core์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ, QBE(Query By Example)์„ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์ฟผ๋ฆฌ ์กฐ๊ฑด์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.    ์ฃผ์š” ๊ฐœ๋…๋„๋ฉ”์ธ ๊ฐ์ฒด(์—”ํ‹ฐํ‹ฐ) ์ž์ฒด๋ฅผ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์œผ๋กœ ํ™œ์šฉNull ๊ฐ’์€ ๋ฌด์‹œ (ํ•„๋“œ ๊ฐ’์ด ์žˆ๋Š” ๊ฒƒ๋งŒ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉ)๋™์  ์ฟผ๋ฆฌ ์ƒ์„ฑ ๊ฐ€๋Šฅ๋ณ„๋„์˜ JPQL์ด๋‚˜ SQL์„ ์ž‘์„ฑํ•  ํ•„์š” ์—†์Œ๐Ÿ‘‰ ๊ฐ„๋‹จํ•œ ๊ฒ€์ƒ‰์—์„œ๋Š” ์œ ์šฉํ•˜๊ฒ ์œผ๋‚˜.. ์‹ค๋ฌด์—์„œ๋Š” ๋ณต์žกํ•œ ๊ฒ€์ƒ‰์ด ๋” ๋งŽ์ด ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ์ €๋Ÿฐ ๊ธฐ๋Šฅ์ด ์žˆ๊ตฌ๋‚˜ ์ •๋„๋งŒ ์•Œ์•„๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค.    ์‚ฌ์šฉ ์˜ˆ์‹œUser probe = new User();..

Java

[Java] ์ง๋ ฌํ™” Serializable

Serializable ์ธํ„ฐํŽ˜์ด์ŠคDTO๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Serializable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๊ทธ ์ด์œ ๋ฅผ ์•Œ์•„๋ณด์ž.  Serializable ์ธํ„ฐํŽ˜์ด์Šค์˜ API์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์—†๋‹ค.๊ตฌํ˜„ํ•ด์•ผํ•  ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š”๋ฐ ์™œ ์žˆ์„๊นŒ. ๐ŸŒŸ ์ž๋ฐ”์—์„œ ์ง๋ ฌํ™”๋ž€ ? ๐Ÿ‘‰ ์ž๋ฐ” ์‹œ์Šคํ…œ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด ๋˜๋Š” ๋ฐ์ดํ„ฐ(JVM์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผ)๋ฅผ ์™ธ๋ถ€์˜ ์ž๋ฐ” ์‹œ์Šคํ…œ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก byte ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ (์ง๋ ฌํ™”)๊ณผ byte๋กœ ๋ณ€ํ™˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ (์—ญ์ง๋ ฌํ™”)์ด๋‹ค.   Serializable์ด ํ•„์š”ํ•œ ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•  ๋•Œ์ €์žฅํ•œ ๊ฐ์ฒด๋ฅผ ์ฝ์„ ๋•Œ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ๋‹ค๋ฅธ ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐ›์„ ๋•Œ๐Ÿ‘‰ ์ฆ‰, ๋งŒ๋“  ํด๋ž˜์Šค๊ฐ€ ..

Java

[Java] ์ œ๋„ค๋ฆญ

์ œ๋„ค๋ฆญ์ด๋ž€ ?ํƒ€์ž… ํ˜• ๋ณ€ํ™˜์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์„ ์‚ฌ์ „์— ์—†์• ์คŒ  public class CastingDto implements Serializable { private Object object; public void setObject(Object object) { this.object = object; } public Object getObject() { return object; }} โœณ๏ธ ์œ„์˜ ์ฝ”๋“œ์—์„œ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜๋ฉดpublic class CastingGenericDto implements Serializable { private T object; public void setObject(T obj) { this.object..

Database/SQL

[๐Ÿ“• Real MySQL 8.0 (2)] ์ฟผ๋ฆฌ ์ž‘์„ฑ ๋ฐ ์ตœ์ ํ™” SELECT - ํ‚ค์›Œ๋“œ ๋ฐ ํ•จ์ˆ˜ 2

4. GROUP BYํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ฐ’์œผ๋กœ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ทธ๋ฃจํ•‘ํ•˜๊ณ , ๊ทธ๋ฃน๋ณ„๋กœ ์ง‘๊ณ„๋œ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ๋ ˆ์ฝ”๋“œ๋กœ ์กฐํšŒ GROUP BY๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์šฉํ•œ ๊ธฐ๋Šฅโœณ๏ธ WITH ROLLUP๊ทธ๋ฃจํ•‘๋œ ๊ทธ๋ฃน๋ณ„๋กœ ์†Œ๊ณ„๋ฅผ ๊ฐ€์ ธ์˜ดโœณ๏ธ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ปฌ๋Ÿผ์œผ๋กœ ๋ณ€ํ™˜ ๋ชฉ์ ์ด๋‚˜ ์šฉ๋„์— ๋งž๊ฒŒ SUM, COUNT, MIN, MAX, AVG ๋“ฑ์˜ ์ง‘ํ•ฉ ํ•จ์ˆ˜ ์‚ฌ์šฉ   5. ORDER BY๊ฒ€์ƒ‰๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ์ •๋ ฌํ• ์ง€ ๊ฒฐ์ •ORDER BY ์ ˆ์ด ๋ช…์‹œ๋˜์ง€ ์•Š์€ ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์ •๋ ฌ์— ๋Œ€ํ•œ ๋ณด์žฅ X  โœณ๏ธ ORDER BY ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ฃผ์˜์‚ฌํ•ญ1๊ฐœ ๋˜๋Š” ๊ทธ ์ด์ƒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปฌ๋Ÿผ์œผ๋กœ ์ •๋ ฌ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ ๐Ÿ‘‰ ์ปฌ๋Ÿผ๋ณ„๋กœ ์ •๋ ฌ ์ˆœ์„œ ๋‹ค๋ฅด๊ฒŒ ๋ช…์‹œ ๊ฐ€๋Šฅ์ •๋ ฌํ•  ๋Œ€์ƒ์€ ์ปฌ๋Ÿผ๋ช…์ด๋‚˜ ํ‘œํ˜„์‹์œผ๋กœ ๋ช…์‹œํ•˜์ง€๋งŒ, SELECT๋˜๋Š” ์ปฌ๋Ÿผ ์ˆœ๋ฒˆ ๋ช…์‹œ ๊ฐ€๋ŠฅSELECT f..

Spring/๐Ÿ“› ์—๋Ÿฌ ๊ธฐ๋ก

[๐Ÿ“› Error] Object๋ฅผ List<XXXDto>๋กœ ์บ์ŠคํŒ…ํ•˜๋‹ˆ ํƒ€์ž… ๋ถˆ์ผ์น˜ ์—๋Ÿฌ ๋ฐœ์ƒ

๐Ÿ“› ์—๋Ÿฌ ์„ค๋ช…class java.util.LinkedHashMap cannot be cast to class com.XXXX. XXXX.app.interfaces.devices.service.dto.StatusDto ๐Ÿ‘‰ java.util.LinkedHashMap์„ StatusDto ๊ฐ์ฒด๋กœ ๊ฐ•์ œ๋กœ ์บ์ŠคํŒ…ํ•˜๋ ค ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ClassException์ด๋‹ค.Java์—์„œ ํƒ€์ž… ๋ถˆ์ผ์น˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š”๊ฑด๋ฐ, ์™œ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž... ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ๐Ÿ”ถ ์ˆ˜์ • ์ „ ์ฝ”๋“œ @Override public Flux getAll() { return deviceRepository.findByXXXX() .switchIfEmpty(Mono.error(n..

AWS

[AWS] Cognito๋กœ ์‚ฌ์šฉ์ž ์ธ์ฆํ•˜๊ธฐ (ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ํƒˆํ‡ด๊นŒ์ง€)

์‚ฌ์šฉ์ž๊ฐ€ ํšŒ์›๊ฐ€์ž…์„ ํ•  ๋•Œ username(userId)๊ณผ ๊ฐ„๋‹จํ•œ ์ •๋ณด๋งŒ DB์— ์ €์žฅํ•˜๊ณ , ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” AWS Cognito์— ์ €์žฅํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. AWS Cognito ๋ž€ ? ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ •๋ฆฌํ•œ ๊ธ€์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž์„ธํ•œ ์„ค๋ช…์€ ์ƒ๋žตํ•˜๊ณ ,์‚ฌ์šฉ์ž ํ’€์„ ์‚ฌ์šฉํ•ด ์ธ์ฆํ•˜๊ณ  ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•œ๋‹ค ! ๋ผ๋Š” ๊ฒƒ๋งŒ ํ™•์ธํ•˜๊ณ  ๋„˜์–ด๊ฐ€์ž.  โœณ๏ธ ์‚ฌ์šฉ์ž ํ’€์„ ์‚ฌ์šฉํ•œ ์ธ์ฆ ๐Ÿ”ท ์ธ์ฆ ํ๋ฆ„ ์‚ฌ์šฉ์ž ๋“ฑ๋ก (Sign Up)์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉ์ž ํ’€์— ๋“ฑ๋ก์‚ฌ์šฉ์ž ์ด๋ฆ„, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ด๋ฉ”์ผ/์ „ํ™”๋ฒˆํ˜ธ ๋“ฑ์˜ ์‚ฌ์šฉ์ž ์†์„ฑ ์ž…๋ ฅ์ด๋ฉ”์ผ ๋˜๋Š” ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด verification code๋ฅผ ๋ฐ›์•„ ๋“ฑ๋ก ์™„๋ฃŒ์‚ฌ์šฉ์ž ์ธ์ฆ (Sign In)๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์ธ์ฆ์ธ์ฆ ์„ฑ๊ณต ์‹œ, ID ํ† ํฐ, accessToken, refreshToke..

Database/SQL

[๐Ÿ“• Real MySQL 8.0 (2)] ์ฟผ๋ฆฌ ์ž‘์„ฑ ๋ฐ ์ตœ์ ํ™” SELECT - ํ‚ค์›Œ๋“œ ๋ฐ ํ•จ์ˆ˜ 1

1. LIMIT n์ฟผ๋ฆฌ์—์„œ ์ง€์ •๋œ ์ˆœ์„œ์— ์œ„์น˜ํ•œ ๋ ˆ์ฝ”๋“œ๋งŒ ๊ฐ€์ ธ์˜ค๊ณ ์ž ํ•จ๐Ÿ‘‰ LIMIT์—์„œ ํ•„์š”ํ•œ ๋ ˆ์ฝ”๋“œ ๊ฑด์ˆ˜๋งŒ ์ค€๋น„๋˜๋ฉด ์ฆ‰์‹œ ์ฟผ๋ฆฌ ์ข…๋ฃŒ  SELECT * FROM salaries ORDER BY salary LIMIT n, m;n, m์— ์ฃผ์–ด์ง€๋Š” ์ˆ˜์น˜๊ฐ€ ๋งค์šฐ ์ปค์ง€๋ฉด ์ฟผ๋ฆฌ ์‹คํ–‰์— ์˜ค๋žœ ์‹œ๊ฐ„ ๊ฑธ๋ฆผLIMIT ์กฐ๊ฑด์˜ ํŽ˜์ด์ง•์ด ์ฒ˜์Œ ๋ช‡ ๊ฐœ ํŽ˜์ด์ง€ ์กฐํšŒ๋กœ ๋๋‚˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฉด WHERE ์กฐ๊ฑด์ ˆ๋กœ ์ฝ์–ด์•ผ ํ•  ์œ„์น˜๋ฅผ ์ฐพ๊ณ  ๊ทธ ์œ„์น˜์—์„œ m๊ฐœ๋งŒ ์ฝ๋Š” ํ˜•ํƒœ์˜ ์ฟผ๋ฆฌ ์‚ฌ์šฉ -- // ๋‘ ๋ฒˆ์งธ ํŽ˜์ด์ง€ ์กฐํšŒ์šฉ ์ฟผ๋ฆฌ(์ฒซ ํŽ˜์ด์ง€์˜ ๋งˆ์ง€๋ง‰ salary ๊ฐ’๊ณผ emp_no ๊ฐ’ ์ด์šฉ)SELECT * FROM salariesWHERE salary>=38864 AND NOT (salary=38864 AND emp_noNOT (salary..

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[OAuth2.0] Client Credentials Grant (ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์ฆ๋ช… ๋ฐฉ์‹)

OAuth 2.0์€ ๊ถŒํ•œ ๋ถ€์—ฌ(Authorization) ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ž์‹ ์˜ ์ž์›์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. ์ฃผ๋กœ access_token์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š”๋ฐ, ์ด ๋ฐฉ์‹์€ ์ž์‹ ์˜ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ ๋„ ์ œ3์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. OAuth 2.0๋Š” ๋‹ค์–‘ํ•œ ์ธ์ฆ๋ฐฉ์‹์„ ์ œ๊ณตํ•œ๋‹ค.Authorization Code Grant (์ธ์ฆ ์ฝ”๋“œ ๋ฐฉ์‹)Implicit Grant (์•”์‹œ์  ์Šน์ธ ๋ฐฉ์‹)Resource Owner Password Credentials Grant (๋น„๋ฐ€๋ฒˆํ˜ธ ์ž๊ฒฉ ์ฆ๋ช… ๋ฐฉ์‹)Client Credentials Grant (ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ..

soogoori
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก