profile
์˜์ฐจ์˜์ฐจ
post-thumbnail

OSI 7 Layer ๋ฐ L2

์ถœ์ฒ˜ : ์™ธ์›Œ์„œ ๋๋‚ด๋Š” ๋„คํŠธ์›Œํฌ ํ•ต์‹ฌ์ด๋ก  - ๊ธฐ์ดˆ (์ธํ”„๋Ÿฐ)

2023๋…„ 9์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

TableView ์—์„œ cell ์˜ ๋„ˆ๋น„ ์ˆ˜์ •ํ•˜๊ธฐ

UITableView๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ฒ˜์Œ์—” Style์„ Inset Grouped ๋ฅผ ์ค˜์„œ ๋ชจ์–‘์„ ์žก์œผ๋ ค๊ณ  ํ–ˆ๋‹ค. Inset Grouped ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์•Œ์•„์„œ ์„น์…˜์— corner round๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ , padding ๋„ ์•Œ์•„์„œ ์žก์•„์ค€๋‹ค.๊ทธ๋Ÿฐ๋ฐ ํšŒ์‚ฌ์— ์ถœ๊ทผ

2023๋…„ 6์›” 23์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

frame.size.height ๋ฐ width ๊ฐ€ 0์ผ ๋•Œ

์œ„์ฒ˜๋Ÿผ header ๋ผ๋Š” UIView ์•ˆ์— card ๋ผ๋Š” UIView ๋ฅผ ๋„ฃ๊ณ , setGradient() ๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ gradient๋ฅผ ์ฃผ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์•„๋ฌด๋ฆฌ ํ•ด๋„ ์•ˆ๋จนํžˆ๋”๋ผ...๋Œ€์ฒด ์™œ๊ทธ๋Ÿด๊นŒ ํ•˜๊ณ , card.layout.size.height ๋ž‘ card.la

2023๋…„ 6์›” 23์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Spring Boot Configuration Annotation Processor not configured

@ConfigurationProperties ์‚ฌ์šฉ ์ค‘ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.Spring Boot Configuration Annotation Processor not configured์ธํ„ฐ๋„ท์— ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ build.gradle์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€๋ฅผ ํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

2023๋…„ 5์›” 29์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Beanstalk ์œผ๋กœ ์Šคํ”„๋ง ๋ฐฐํฌํ•˜๊ธฐ!

์˜ค๋Š˜์€ Elastic Beanstalk ์— ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.EC2์—๋Š” ๋ช‡ ๋ฒˆ ๋ฐฐํฌํ•ด๋ดค์ง€๋งŒ Elastic Beanstalk์— ๋ฐฐํฌํ•ด๋ณด๋Š” ๊ฑด ์ฒ˜์Œ์ด๋‹ค!์ผ๋‹จ ์ œ์ผ ์ฒ˜์Œ aws ์˜ Beanstalk์— ๋“ค์–ด๊ฐ„๋‹ค.๊ฐ„๋‹จํ•˜๊ฒŒ '์‹œ์ž‘ํ•˜๊ธฐ'ํด๋ฆญ!ํ™˜๊ฒฝ ์„ค์ •์„ ํ•ด์ค€๋‹ค.ํŒŒ์ผ์„ ์—…๋กœ๋“œ

2023๋…„ 5์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์Šคํ”„๋ง ๊ฒŒ์‹œํŒ API ๋งŒ๋“ค๊ธฐ 6

API ๋ช…์‹œ์„œ๋ฅผ ํ•œ ๋ฒˆ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์˜›๋‚ ์— Swagger๋ฅผ ๋”ฑ ํ•œ ๋ฒˆ ์ผ๋˜ ๊ธฐ์–ต์ด ์žˆ์–ด์„œ Swagger๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ! ์•Œ์•„์„œ ์ž‘์„ฑ๋˜๊ฒŒ! ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.Spring boot 3 ๋ฏธ๋งŒ์—์„œ๋Š” springfox-swagger2 ์™€ springfox-swagger-ui

2023๋…„ 5์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์Šคํ”„๋ง ๊ฒŒ์‹œํŒ API ๋งŒ๋“ค๊ธฐ 5

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.๋‚ด์šฉ์€ 1๊ธ€์ž ์ด์ƒ 1000๊ธ€์ž ์ดํ•˜์—ฌ์•ผ ํ•œ๋‹ค.์ œ๋ชฉ์€ ๊ณต๋ฐฑ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์งˆ ์ˆ˜๋Š” ์—†๋‹ค.๊ฒŒ์‹œ๊ธ€์˜ id(PK, primary key)๋กœ ํŠน์ • ๊ฒŒ์‹œ๊ธ€์„ ์กฐํšŒํ–ˆ์„ ๋•Œ, ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒŒ์‹œ๊ธ€์ผ ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋กœ ์‘๋‹ตํ•˜๊ธฐ๊ฒŒ์‹œ๊ธ€์„

2023๋…„ 5์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์Šคํ”„๋ง ๊ฒŒ์‹œํŒ API ๋งŒ๋“ค๊ธฐ 4

์ด๋ฒˆ์—” Pageable์„ ์ˆ˜์ •์„ ์ข€ ํ•ด๋ณด์•˜๋‹ค.์›๋ž˜๋Š” SpringDoc์„ ํ†ตํ•ด์„œ API ๋ช…์‹œ์„œ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๋ คํ–ˆ๋Š”๋ฐ, ๋งŒ๋“ค๊ณ  ๋ณด๋‹ˆ ํŒŒ๋ผ๋ฏธํ„ฐ์— order๊ฐ€ ์žˆ๋Š”๊ฒŒ ์•„๋‹Œ๊ฐ€! (์ €๋ฒˆ์— Pageable์—์„œ order๋ฅผ ์ฐพ๋‹ค๊ฐ€ ํฌ๊ธฐํ–ˆ์—ˆ๋‹ค.) ๊ทธ๋ž˜์„œ ๋‹ค์‹œ TRY ํ•ด๋ณด์•˜๋Š”๋ฐ, ์—ญ์‹œ๋‚˜

2023๋…„ 5์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Optional?

Optional >Optional ํด๋ž˜์Šค๋Š” Integer๋‚˜ Double ํด๋ž˜์Šค์ฒ˜๋Ÿผ 'T'ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ํฌ์žฅํ•ด ์ฃผ๋Š” ๋ž˜ํผ ํด๋ž˜์Šค(Wrapper class)์ž…๋‹ˆ๋‹ค. >๋”ฐ๋ผ์„œ Optional ์ธ์Šคํ„ด์Šค๋Š” ๋ชจ๋“  ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. >์ถœ์ฒ˜ : ์ฝ”๋”ฉ์˜ ์‹œ์ž‘,

2023๋…„ 5์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์Šคํ”„๋ง ๊ฒŒ์‹œํŒ API ๋งŒ๋“ค๊ธฐ 3

๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ฒ€์ƒ‰, ์ •๋ ฌ, ๊ฐฏ์ˆ˜์ œํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด ๋ณด๋ ค๊ณ ํ•œ๋‹ค.๊ฐฏ์ˆ˜์ œํ•œ์„ ๊ทธ๋ƒฅ limit๋กœ ๋ณด๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ Pagination๋Š๋‚Œ์œผ๋กœ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.Spring Data JPA๊ฐ€ ์ œ๊ณตํ•˜๋Š” PageNation์ด ์žˆ๋Š”๋ฐ, Pageable๊ณผ PageRequest์ด๋‹ค.Pa

2023๋…„ 5์›” 15์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

ORM ์ด๋ž€?

ORM(Object-Relational Mapping)์€ ๋Œ€์ฒด ๋ฌด์—‡์ผ๊นŒ?์ด๊ฒƒ์€ ์ž๋ฐ”์˜ ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์ดํ•˜, ๋””๋น„)๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ด๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ์ž๋ฐ”์˜ ๊ฐ์ฒด๋กœ Board๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ๊ณ  title, content ํ•„๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์ด๊ฒƒ์„ ๋””๋น„

2023๋…„ 5์›” 15์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

์Šคํ”„๋ง ๊ฒŒ์‹œํŒ API ๋งŒ๋“ค๊ธฐ 2

ํŠน์ • ํ•œ ๊ฒŒ์‹œํŒ์„ ์กฐํšŒํ•˜๋Š” API๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.๋จผ์ € Service ์ฝ”๋“œ๋ถ€ํ„ฐ ์ž‘์„ฑํ•ด๋ณด์ž.findById ๋Š” CrudRepository ์— ์žˆ๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค.id ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Board๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.์„œ๋น„์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์œผ๋‹ˆ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž.์ด๋Ÿฌ๋ฉด ๋ฒŒ์จ ๊ฒŒ์‹œ๊ธ€ ํ•˜

2023๋…„ 5์›” 15์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์Šคํ”„๋ง ๊ฒŒ์‹œํŒ API ๋งŒ๋“ค๊ธฐ

1. ์—”ํ‹ฐํ‹ฐ ๊ตฌ์„ฑํ•˜๊ธฐ ๊ฐ€์žฅ ๋จผ์ € ์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด๊ฒ ๋‹ค. | ์ปฌ๋Ÿผ๋ช… | ์ž๋ฃŒํ˜• | null ํ—ˆ์šฉ | ํ‚ค | ์„ค๋ช… | |-|-|-|-|- | id | int | X | PK | ๊ฒŒ์‹œ๊ธ€์˜ ์•„์ด๋”” | | title | varchar(100) | X | | ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ|

2023๋…„ 5์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

REST API?

๊ธ€์ œ๋ชฉ, ๋‚ด์šฉ ์ •๋„๋งŒ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ๊ฒŒ์‹œํŒ API๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.์Šคํ”„๋ง์„ ๋งŒ์ง„์ง€ ์–ด์–ธ 1๋…„์ด ๋‹ค ๋˜์–ด ์Šคํ”„๋ง์ด ํ•˜๋‚˜๋„ ๊ธฐ์–ต๋‚˜์ง€ ์•Š์•„ ๋ณต์Šต ์ฐจ์›์—์„œ ์—ด์‹ฌํžˆ ์Šคํ„ฐ๋”” ์ค‘์ด๋‹ค! ๐Ÿ˜‚์ผ๋‹จ ๊ฐ€์žฅ ๋จผ์ € Rest API๋ž€ ๋ฌด์—‡์ผ๊นŒ?Rest API๋ž€ URL์˜ ์„ค๊ณ„ ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค

2023๋…„ 5์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Invalid bound statement (not found)

Spring - mybatis ์—ฐ๋™ํ•˜๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.๊ทธ ์ „๊นŒ์ง€ ๋ถ„๋ช… ์ž˜ ๋˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์„œ๋ฒ„ ํ•œ ๋ฒˆ ์žฌ๊ธฐ๋™ ํ–ˆ๋‹ค๊ณ  ๊ฐ‘์ž๊ธฐ ์—๋Ÿฌ ํญ๋ฐœ... ๐Ÿ˜…ํด๋” ์œ„์น˜๋ฅผ ํŒจํ‚ค์ง€ ์œ„์น˜๋ž‘ ๊ฐ™์ด ํ•ด์•ผ ๋œ๋‹ค. ํŒŒ์ผ๋ช…์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋งŽ์•„์„œ ๋ณด์ด๋Š”๋Œ€๋กœ ๋‹ค ์‹œ๋„ํ•ด๋ดค๋Š”๋ฐ, ๋‚˜๊ฐ™์€

2023๋…„ 5์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท