์• ์ •์ฝ”๋”ฉ ๐Ÿ’ป
React LifeCycle
WEB/React 2021. 5. 24. 15:20

import React, { Component } from 'react'; class LifeCycleSample extends Component{ state={ error:false, number:0, color:null, } myRef = null; // ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ฒ˜์Œ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. // ์ดˆ๊ธฐ state๋ฅผ ์ •ํ•œ๋‹ค. constructor(props){ super(props); console.log('constructor'); } // props๋กœ ๋ฐ›์•„ ์˜จ ๊ฐ’์„ state์— ๋™๊ธฐํ™”์‹œํ‚ค๋Š” ์šฉ๋„ // ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งˆ์šดํŠธ๋  ๋•Œ, ์—…๋ฐ์ดํŠธ๋  ๋•Œ ํ˜ธ์ถœ static getDerivedStateFromProps(nextProps,prevState){ console.log('getDerivedStateFrom..

article thumbnail
7. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ํ”„๋ก์‹œ์™€ ์—ฐ๊ด€๊ด€๊ณ„ ๊ด€๋ฆฌ
WEB/JPA 2021. 5. 18. 17:54

ํ”„๋ก์‹œ Team์— ์†ํ•ด์žˆ๋Š” Member ๋ฅผ ์กฐํšŒํ•  ์‹œ Team๊นŒ์ง€ ์กฐํšŒํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ? ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์—์„œ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ ํ•ญ์ƒ Team์„ ํ•จ๊ป˜ ์กฐํšŒํ•œ๋‹ค๋ฉด ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค. ์ด ๋‚ญ๋น„๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ํ”„๋ก์‹œ๋ผ๋Š” ๊ฐ ๋ฉฐ์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค. - ์‹ค์ œ ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›์•„์„œ ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ‰ ๋ชจ์–‘์ด ๊ฐ™๋‹ค - ์‚ฌ์šฉํ•˜๋Š” ์ž…์žฅ์—์„œ๋Š” ์ง„์งœ, ๊ฐ€์งœ ๊ฐ์ฒด์ธ์ง€ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. - ํ”„๋ก์‹œ ๊ฐ์ฒด๋Š” ์‹ค์ œ ๊ฐ์ฒด์˜ ์ฐธ์กฐ๋ฅผ ๋ณด๊ด€ -> ํ”„๋ก์‹œ ๊ฐ์ฒด๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ”„๋ก์‹œ ๊ฐ์ฒด๋Š” ์‹ค์ œ ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ em.find() : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ†ตํ•ด์„œ ์‹ค์ œ ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด ์กฐํšŒ em.getReference() : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ๋ฅผ ๋ฏธ๋ฃจ๋Š” ๊ฐ€์งœ(ํ”„๋ก์‹œ) ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด ์กฐํšŒ // ํ˜ธ์ถœํ•œ ์ˆœ๊ฐ„ ์ฟผ๋ฆฌ ์‹คํ–‰ Member findMember..

article thumbnail
6. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ณ ๊ธ‰๋งคํ•‘
WEB/JPA 2021. 5. 17. 18:08

์ƒ์†๊ด€๊ณ„ ๋งคํ•‘ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ƒ์† ๊ด€๊ณ„๊ฐ€ ์—†๋‹ค.(์Šˆํผํƒ€์ž… ์„œ๋ธŒํƒ€์ž… ๊ด€๊ณ„๋ผ๋Š” ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•์ด ๊ฐ์ฒด ์ƒ์†๊ณผ ์œ ์‚ฌํ•˜๋‹ค) ์Šˆํผํƒ€์ž… ์„œ๋ธŒํƒ€์ž… ๋…ผ๋ฆฌ ๋ชจ๋ธ์„ ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ชจ๋ธ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• 1. ๊ฐ๊ฐ ํ…Œ์ด๋ธ”๋กœ ๋ณ€ํ™˜ -> ์กฐ์ธ ์ „๋žต (์ •์„) - ํ…Œ์ด๋ธ” ์ •๊ทœํ™” - ์™ธ๋ž˜ ํ‚ค ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ํ™œ์šฉ ๊ฐ€๋Šฅ - ์ €์žฅ๊ณต๊ฐ„ ํšจ์œจํ™” - ์กฐํšŒ์‹œ ์กฐ์ธ์„ ๋งŽ์ด ์‚ฌ์šฉ -> ์„ฑ๋Šฅ ์ €ํ•˜, ์กฐํšŒ ์ฟผ๋ฆฌ๊ฐ€ ๋ณต์žกํ•จ - ๋ฐ์ดํ„ฐ ์ €์žฅ์‹œ INSERT ์ฟผ๋ฆฌ๊ฐ€ 2๋ฒˆ ํ˜ธ์ถœ ๋œ๋‹ค. ๋น„์ง€๋‹ˆ์Šค์ ์œผ๋กœ ์ค‘์š”ํ•˜๊ณ  ๋ณต์žกํ•  ๋•Œ ์„ ํƒ! ๋ถ€๋ชจ ํด๋ž˜์Šค ์„ค์ • @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn ์ž์‹ ํด๋ž˜์Šค ์„ค์ • -> dtype์— ํ‘œ์‹œ๋  ์ด๋ฆ„์„ ์ •ํ•ด ์ค„ ๊ฒฝ์šฐ @DiscriminatorVa..

article thumbnail
5. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๋‹ค์–‘ํ•œ ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘
WEB/JPA 2021. 5. 14. 15:02

์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘์‹œ ๊ณ ๋ ค์‚ฌํ•ญ 3๊ฐ€์ง€ 1. ๋‹ค์ค‘์„ฑ 2. ๋‹จ๋ฐฉํ–ฅ, ์–‘๋ฐฉํ–ฅ 3. ์—ฐ๊ด€๊ด€๊ณ„์˜ ์ฃผ์ธ - ๊ฐ์ฒด ์–‘๋ฐฉํ–ฅ ๊ด€๊ณ„๋Š” ์ฐธ์กฐ๊ฐ€ 2๊ตฐ๋ฐ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜์ค‘ ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•  ๊ณณ์„ ์ง€์ •ํ•ด์•ผํ•จ - ์™ธ๋ž˜ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ฐธ์กฐ - ์ฃผ์ธ์˜ ๋ฐ˜๋Œ€ํŽธ : ์™ธ๋ž˜ ํ‚ค์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ, ๋‹จ์ˆœ ์กฐํšŒ ๋‹ค๋Œ€์ผ[N:1] ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•จ ๋‹จ๋ฐ˜ํ–ฅ ์•„๋ž˜์™€ ๊ฐ™์ด [N]์—์„œ ์™ธ๋ž˜ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  Team์„ ์กฐํšŒ ํ•˜๊ณ  ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. Team์— ์„œ๋Š” ์กฐํšŒํ•˜์ง€ ๋ชปํ•จ -> Team์—์„œ Member์„ ์กฐํšŒํ•˜๋Š”์ผ์ด ๋นˆ๋ฒˆํ•˜๋‹ค๊ณ  ํ•˜๋ฉด -> ์–‘๋ฐ˜ํ–ฅ ์œผ๋กœ ๋งคํ•‘ํ•ด์ฃผ๋Š”๊ฒŒ ์ข‹์Œ. ์–‘๋ฐ˜ํ–ฅ ๋‹จ๋ฐ˜ํ–ฅ์—์„œ TEAM์ด MEMBER๋ฅผ mapped by ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ MEMBER๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. (์ฝ๊ธฐ ์ „์šฉ) ์ผ๋Œ€๋‹ค[1:N] 1์ด ์—ฐ๊ด€๊ด€๊ณ„์˜ ์ฃผ์ธ์ด๋‹ค. ๋‹จ๋ฐฉํ–ฅ TEAM ์—์„œ..

article thumbnail
4. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์—ฐ๊ด€๊ด€๊ณ„
WEB/JPA 2021. 5. 14. 14:11

๋ชฉํ‘œ - ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ” ์—ฐ๊ด€๊ด€๊ณ„์˜ ์ฐจ์ด๋ฅผ ์ดํ•ด - ๊ฐ์ฒด์˜ ์ฐธ์กฐ์™€ ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ ํ‚ค๋ฅผ ๋งคํ•‘ ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ” ์—ฐ๊ด€๊ด€๊ณ„์˜ ์ฐจ์ด๋ฅผ ์ดํ•ด ๊ฐ์ฒด๋ฅผ ํ…Œ์ด๋ธ”์— ๋งž์ถ”์–ด ๋ชจ๋ธ๋ง ํ–ˆ์„ ๋•Œ ๋ฌธ์ œ์  (์ฐธ์กฐ ๋Œ€์‹ ์— ์™ธ๋ž˜ ํ‚ค๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ) ํ˜‘๋ ฅ ๊ด€๊ณ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค. ํ…Œ์ด๋ธ”์€ ์™ธ๋ž˜ ํ‚ค๋กœ ์กฐ์ธ์„ ์‚ฌ์šฉํ•ด์„œ ์—ฐ๊ด€๋œ ํ…Œ์ด๋ธ”์„ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฒˆ๊ฑฐ๋กœ์šด ์ฝ”๋“œ๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค. Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setUsername("member1"); // ์™ธ๋ž˜ํ‚ค ์‹๋ณ„์ž๋ฅผ ์ง์ ‘ ๋‹ค๋ฃฌ๋‹ค. member.setTeamId(team.getId()); em.persist(member); // ๋ฉค๋ฒ„์˜ ..

article thumbnail
3. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์—”ํ‹ฐํ‹ฐ ๋งคํ•‘
WEB/JPA 2021. 5. 13. 16:19

๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ” ๋งคํ•‘ @Entity - @Entity๊ฐ€ ์ •์˜๋˜์–ด์žˆ๋Š” ํด๋ž˜์Šค๋Š” JPA๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค. - ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ๊ผญ ์žˆ์–ด์•ผ ํ•œ๋‹ค. - ์†์„ฑ: name ->JPA์— ์‚ฌ์šฉํ•  ์—”ํ‹ฐํ‹ฐ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค, ๊ธฐ๋ณธ๊ฐ’ : ํด๋ž˜์Šค ์ด๋ฆ„์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ @Table - name, catalog, schema ๋“ฑ๋“ฑ. . ํ•„๋“œ์™€ ์ปฌ๋Ÿผ ๋งคํ•‘ @Column ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปฌ๋Ÿผ๋ช…์„ ์„ค์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. unique(์‹ค๋ฌด์—์„œ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค -> ์œ ๋‹ˆํฌ ์ œ์•ฝ์กฐ๊ฑด ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์—†๋‹ค ๋Œ€์‹  @Table(uniqueCons.. ์‚ฌ์šฉ), length ๋“ฑ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. @Temporal ๋‚ ์งœ ํƒ€์ž… ๋งคํ•‘ ํ•˜์ง€๋งŒ LocalDate, LocalDateTime์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค. @Enumerated enum ํƒ€์ž… ๋งคํ•‘ default..

article thumbnail
2. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹
WEB/JPA 2021. 5. 13. 11:50

JPA์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ 2๊ฐ€์ง€ - ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งคํ•‘ํ•˜๊ธฐ - ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๊ฐ€ ๋ญ˜๊นŒ? JPA๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์šฉ์–ด์ด๋‹ค. "์—”ํ‹ฐํ‹ฐ๋ฅผ ์˜๊ตฌ ์ €์žฅํ•˜๋Š” ํ™˜๊ฒฝ"์ด๋ผ๋Š” ๋œป. -> EntityManager.persist(entity); - persist๋Š” ์‚ฌ์‹ค DB์— ์ €์žฅํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ณ  Entity๋ฅผ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. - ๋…ผ๋ฆฌ์ ์ธ ๊ฐœ๋…์œผ๋กœ ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. EntityManager๋ฅผ ํ†ตํ•ด์„œ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ ‘๊ทผํ•œ๋‹ค. - ์—ฌ๋Ÿฌ๊ฐœ์˜ EntityManager๊ฐ€ ํ•˜๋‚˜์˜ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ๋ฐ”๋ผ๋ณธ๋‹ค. ์—”ํ‹ฐํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๋น„์˜์† - ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ ์ „ํ˜€ ๊ด€๊ณ„๊ณผ ์—†๋Š” ์ƒˆ๋กœ์šด ์ƒํƒœ ์˜์† - ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ๊ด€๋ฆฌ๋˜๋Š” ์ƒํƒœ ์ค€์˜์† - ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ €์žฅ๋˜..

1. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ฐ„๋‹จํ•œ ์‹ค์Šต
WEB/JPA 2021. 5. 13. 10:01

์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ์„ ๋•Œ ์ €์žฅ์ด ๋ ๊นŒ? ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธด๋‹ค. ์™œ๋ƒํ•˜๋ฉด JPA๋Š” ํŠธ๋ Œ์ ์…˜์ด๋Š” ๋‹จ์œ„๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— JPA์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์€ ํŠธ๋ Œ์ ์…˜ ์•ˆ์—์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค. EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); Member member = new Member(); member.setId(1L); member.setName("AE"); em.persist(member); em.close(); emf.close(); ํŠธ๋ Œ์ ์…˜์„ ์ถ”๊ฐ€ํ•œ ์ฝ”๋“œ EntityManagerFactory emf = Persistence.createEntityMa..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ•˜์ƒค๋“œ ์ˆ˜

๋ฌธ์ œ ์–‘์˜ ์ •์ˆ˜ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ด๋ ค๋ฉด x์˜ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์œผ๋กœ x๊ฐ€ ๋‚˜๋ˆ„์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 18์˜ ์ž๋ฆฟ์ˆ˜ ํ•ฉ์€ 1+8=9์ด๊ณ , 18์€ 9๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ 18์€ ํ•˜์ƒค๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž์—ฐ์ˆ˜ x๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ‘ผ ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ˆ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘ผ ์‚ฌ๋žŒ๋„ ๋งŽ์ง€๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ทจ์ง€๋Š” ๊ทธ๊ฒŒ ์•„๋‹ˆ์ง€ ์•Š๋‚˜... ์‹ถ๊ธฐ๋„ ํ•˜๊ณ  ์†๋„๋„ ๋Š๋ฆฐ๊ฒŒ ๋งŽ์•„์„œ ๊ทธ๋ƒฅ ๋‚ด ๋ฐฉ์‹์œผ๋กœ ํ’€๊ณ  ์†๋„์ด์Šˆ๊ฐ€ ํฌ์ง€ ์•Š๋Š” ์ด์ƒ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ–ˆ๋‹ค! class Solution { public boolean solution(int x) { boolean answer = true; int calValue = 0; if(x/10>0){ String stringValue = St..

article thumbnail
0. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ
WEB/JPA 2021. 5. 11. 14:06

www.inflearn.com/course/ORM-JPA-Basic/dashboard ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜ JPA๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ฑฐ๋‚˜, ์‹ค๋ฌด์—์„œ JPA๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์ด JPA์˜ ๊ธฐ๋ณธ ์ด๋ก ์„ ํƒ„ํƒ„ํ•˜๊ฒŒ ํ•™์Šตํ•ด์„œ ์ดˆ๋ณด์ž๋„ ์‹ค๋ฌด์—์„œ ์ž์‹ ์žˆ๊ฒŒ JPA๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., ๋ณธ ๊ฐ•์˜๋Š” ์ž๋ฐ” ๋ฐฑ์—” www.inflearn.com ์ธํ”„๋Ÿฐ์— ์žˆ๋Š” ๊ฐ•์˜๋ฅผ ๋ณด๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค! ๋ชฉํ‘œ : ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ” ์„ค๊ณ„ ๋งคํ•‘ - ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ”์„ ์ œ๋Œ€๋กœ ์„ค๊ณ„ํ•˜๊ณ  ๋งคํ•‘ํ•˜๋Š” ๋ฐฉ๋ฒ• - ๊ธฐ๋ณธ ํ‚ค์™€ ์™ธ๋ž˜ ํ‚ค ๋งคํ•‘ - 1:N, N:1, 1:1, N:M ๋งคํ•‘ - ์‹ค๋ฌด ๋…ธํ•˜์šฐ + ์„ฑ๋Šฅ ๊ณ ๋ ค - JPA ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹ ์ดํ•ดํ•˜๊ธฐ - JPA๊ฐ€ ์–ธ์ œ, ์–ด๋–ค SQL์„ ๋งŒ๋“ค์–ด ์‹คํ–‰ํ•˜๋Š”์ง€ ์ดํ•ด J..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ๊ฐ€๋ฆฌ๊ธฐ

๋ฌธ์ œ ์„ค๋ช… ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ชจ๋ฐ”์ผ์€ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ๊ณ ์ง€์„œ๋ฅผ ๋ณด๋‚ผ ๋•Œ ๊ณ ๊ฐ๋“ค์˜ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€๋ฆฝ๋‹ˆ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋ฌธ์ž์—ด phone_number๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ „ํ™”๋ฒˆํ˜ธ์˜ ๋’ท 4์ž๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ˆซ์ž๋ฅผ ์ „๋ถ€ *์œผ๋กœ ๊ฐ€๋ฆฐ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์กฐ๊ฑด s๋Š” ๊ธธ์ด 4 ์ด์ƒ, 20์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ‘ผ ๋‹ต ์ฒ˜์Œ์—๋Š” replace๋ฅผ ์“ฐ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ๋‹ค๋ฅด๊ฒŒ ํ•ด๋ณด๋ ค๊ณ  ์ž˜ ์•ˆ์“ฐ๋Š” toCharArray ๋ฅผ ์จ๋ดค๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์†๋„๊ฐ€ ๋นจ๋ผ์„œ ๋งŒ์กฑ class Solution { public String solution(String phone_number) { char[] toChar = phone_number.toCharArray(); for(int i=0;i

03. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ - ์ƒ์†, ์˜์กด
BASIC 2021. 5. 10. 14:18

์ƒ์† ์ƒ์†์„ ํ†ตํ•œ ๊ธฐ๋Šฅ ์žฌ์‚ฌ์šฉ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์  1. ์ƒ์œ„ ํด๋ž˜์Šค ๋ณ€๊ฒฝ์ด ์–ด๋ ค์›€ - ์ƒ์œ„ ํด๋ž˜์Šค๋ฅผ ์กฐ๊ธˆ๋งŒ ์ž˜๋ชป ๋ณ€๊ฒฝํ•ด๋„ ๊ทธ ํ•˜์œ„ ํด๋ž˜์Šค๋“ค์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ž‘๋™๋  ์ˆ˜ ์žˆ์Œ. ( ๊ณ„์ธต๋„๋ฅผ ๋”ฐ๋ผ ์ „ํŒŒ๋จ ) 2. ์ƒˆ๋กœ์šด ์กฐํ•ฉ์ด ์ƒ๊ธธ ๋•Œ ๋งˆ๋‹ค ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ฆ๊ฐ€๋œ๋‹ค. ์–ด๋–ค ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š”์ง€๋„ ์• ๋งค 3. ์ƒ์†์„ ์˜ค์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋‹จ์  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ? - ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ๋ฌถ์–ด์„œ ๋” ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต - ๋ณดํ†ต ํ•„๋“œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์กฐ๋ฆฝ, ๊ฐ์ฒด๋ฅผ ํ•„์š” ์‹œ์ ์— ์ƒ์„ฑ/๊ตฌํ•จ ์ƒ์†ํ•˜๊ธฐ์— ์•ž์„œ ์กฐ๋ฆฝ์œผ๋กœ ํ’€ ์ˆ˜ ์—†๋Š”์ง€ ๊ฒ€ํ† ํ•˜๊ณ  ์ง„์งœ ํ•˜์œ„ ํƒ€์ž…์ธ ๊ฒฝ์šฐ์—๋งŒ ์ƒ์†์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค! (๊ธฐ๋Šฅ ์žฌ์‚ฌ์šฉ ์‹œ ์“ฐ์ง€ ์•Š๋„๋ก ์ฃผ์˜!) ์กฐ๊ฑด ๋ถ„๊ธฐ์ผ ๊ฒฝ์šฐ ์ถ”์ƒํ™”, ์ƒ์†์ด ์ข‹์Šต๋‹ˆ๋‹ค. -> ์˜๋„๊ฐ€ ์ž˜ ๋“œ๋Ÿฌ๋‚˜๋Š” ์ด๋ฆ„ ์‚ฌ์šฉ ์˜์กด..