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..

ํ๋ก์ Team์ ์ํด์๋ Member ๋ฅผ ์กฐํํ ์ Team๊น์ง ์กฐํํ ํ์๊ฐ ์์๊น? ๋น์ง๋์ค ๋ก์ง์์ ํ์ํ์ง ์์ ๋๊ฐ ์๋๋ฐ ํญ์ Team์ ํจ๊ป ์กฐํํ๋ค๋ฉด ๋ญ๋น๊ฐ ๋ฐ์๋๋ค. ์ด ๋ญ๋น๋ฅผ ํ์ง ์๊ธฐ ์ํด ํ๋ก์๋ผ๋ ๊ฐ ๋ฉฐ์ผ๋ก ํด๊ฒฐํ๋ค. - ์ค์ ํด๋์ค๋ฅผ ์์ ๋ฐ์์ ๋ง๋ค์ด์ง๊ธฐ ๋๋ฌธ์ ๊ฒ ๋ชจ์์ด ๊ฐ๋ค - ์ฌ์ฉํ๋ ์ ์ฅ์์๋ ์ง์ง, ๊ฐ์ง ๊ฐ์ฒด์ธ์ง ๊ตฌ๋ถํ์ง ์๊ณ ์ฌ์ฉํ๋ฉด ๋๋ค. - ํ๋ก์ ๊ฐ์ฒด๋ ์ค์ ๊ฐ์ฒด์ ์ฐธ์กฐ๋ฅผ ๋ณด๊ด -> ํ๋ก์ ๊ฐ์ฒด๋ฅผ ํธ์ถํ๋ฉด ํ๋ก์ ๊ฐ์ฒด๋ ์ค์ ๊ฐ์ฒด์ ๋ฉ์๋ ํธ์ถ em.find() : ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํด์ ์ค์ ์ํฐํฐ ๊ฐ์ฒด ์กฐํ em.getReference() : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ๋ฅผ ๋ฏธ๋ฃจ๋ ๊ฐ์ง(ํ๋ก์) ์ํฐํฐ ๊ฐ์ฒด ์กฐํ // ํธ์ถํ ์๊ฐ ์ฟผ๋ฆฌ ์คํ Member findMember..

์์๊ด๊ณ ๋งคํ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์ ๊ด๊ณ๊ฐ ์๋ค.(์ํผํ์ ์๋ธํ์ ๊ด๊ณ๋ผ๋ ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ์ด ๊ฐ์ฒด ์์๊ณผ ์ ์ฌํ๋ค) ์ํผํ์ ์๋ธํ์ ๋ ผ๋ฆฌ ๋ชจ๋ธ์ ์ค์ ๋ฌผ๋ฆฌ ๋ชจ๋ธ๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ 1. ๊ฐ๊ฐ ํ ์ด๋ธ๋ก ๋ณํ -> ์กฐ์ธ ์ ๋ต (์ ์) - ํ ์ด๋ธ ์ ๊ทํ - ์ธ๋ ํค ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ํ์ฉ ๊ฐ๋ฅ - ์ ์ฅ๊ณต๊ฐ ํจ์จํ - ์กฐํ์ ์กฐ์ธ์ ๋ง์ด ์ฌ์ฉ -> ์ฑ๋ฅ ์ ํ, ์กฐํ ์ฟผ๋ฆฌ๊ฐ ๋ณต์กํจ - ๋ฐ์ดํฐ ์ ์ฅ์ INSERT ์ฟผ๋ฆฌ๊ฐ 2๋ฒ ํธ์ถ ๋๋ค. ๋น์ง๋์ค์ ์ผ๋ก ์ค์ํ๊ณ ๋ณต์กํ ๋ ์ ํ! ๋ถ๋ชจ ํด๋์ค ์ค์ @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn ์์ ํด๋์ค ์ค์ -> dtype์ ํ์๋ ์ด๋ฆ์ ์ ํด ์ค ๊ฒฝ์ฐ @DiscriminatorVa..

์ฐ๊ด๊ด๊ณ ๋งคํ์ ๊ณ ๋ ค์ฌํญ 3๊ฐ์ง 1. ๋ค์ค์ฑ 2. ๋จ๋ฐฉํฅ, ์๋ฐฉํฅ 3. ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ - ๊ฐ์ฒด ์๋ฐฉํฅ ๊ด๊ณ๋ ์ฐธ์กฐ๊ฐ 2๊ตฐ๋ฐ ์๊ธฐ ๋๋ฌธ์ ๋์ค ํ ์ด๋ธ์ ์ธ๋ ํค๋ฅผ ๊ด๋ฆฌํ ๊ณณ์ ์ง์ ํด์ผํจ - ์ธ๋ ํค๋ฅผ ๊ด๋ฆฌํ๋ ์ฐธ์กฐ - ์ฃผ์ธ์ ๋ฐ๋ํธ : ์ธ๋ ํค์ ์ํฅ์ ์ฃผ์ง ์์, ๋จ์ ์กฐํ ๋ค๋์ผ[N:1] ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํจ ๋จ๋ฐํฅ ์๋์ ๊ฐ์ด [N]์์ ์ธ๋ ํค๋ฅผ ๊ด๋ฆฌํ๊ณ Team์ ์กฐํ ํ๊ณ ์ถ๊ฐํ ์ ์๋ค. Team์ ์๋ ์กฐํํ์ง ๋ชปํจ -> Team์์ Member์ ์กฐํํ๋์ผ์ด ๋น๋ฒํ๋ค๊ณ ํ๋ฉด -> ์๋ฐํฅ ์ผ๋ก ๋งคํํด์ฃผ๋๊ฒ ์ข์. ์๋ฐํฅ ๋จ๋ฐํฅ์์ TEAM์ด MEMBER๋ฅผ mapped by ๋ฅผ ์ถ๊ฐํ์ฌ MEMBER๋ฅผ ์กฐํํ ์ ์๋ค. (์ฝ๊ธฐ ์ ์ฉ) ์ผ๋๋ค[1:N] 1์ด ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ด๋ค. ๋จ๋ฐฉํฅ TEAM ์์..

๋ชฉํ - ๊ฐ์ฒด์ ํ ์ด๋ธ ์ฐ๊ด๊ด๊ณ์ ์ฐจ์ด๋ฅผ ์ดํด - ๊ฐ์ฒด์ ์ฐธ์กฐ์ ํ ์ด๋ธ์ ์ธ๋ ํค๋ฅผ ๋งคํ ๊ฐ์ฒด์ ํ ์ด๋ธ ์ฐ๊ด๊ด๊ณ์ ์ฐจ์ด๋ฅผ ์ดํด ๊ฐ์ฒด๋ฅผ ํ ์ด๋ธ์ ๋ง์ถ์ด ๋ชจ๋ธ๋ง ํ์ ๋ ๋ฌธ์ ์ (์ฐธ์กฐ ๋์ ์ ์ธ๋ ํค๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉ) ํ๋ ฅ ๊ด๊ณ๋ฅผ ๋ง๋ค ์ ์๋ค. ํ ์ด๋ธ์ ์ธ๋ ํค๋ก ์กฐ์ธ์ ์ฌ์ฉํด์ ์ฐ๊ด๋ ํ ์ด๋ธ์ ์ฐพ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด ๋ฒ๊ฑฐ๋ก์ด ์ฝ๋๊ฐ ๋ฐ์๋๋ค. Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setUsername("member1"); // ์ธ๋ํค ์๋ณ์๋ฅผ ์ง์ ๋ค๋ฃฌ๋ค. member.setTeamId(team.getId()); em.persist(member); // ๋ฉค๋ฒ์ ..

๊ฐ์ฒด์ ํ ์ด๋ธ ๋งคํ @Entity - @Entity๊ฐ ์ ์๋์ด์๋ ํด๋์ค๋ JPA๊ฐ ๊ด๋ฆฌํ๋ค. - ๊ธฐ๋ณธ ์์ฑ์๊ฐ ๊ผญ ์์ด์ผ ํ๋ค. - ์์ฑ: name ->JPA์ ์ฌ์ฉํ ์ํฐํฐ ์ด๋ฆ์ ์ง์ ํ๋ค, ๊ธฐ๋ณธ๊ฐ : ํด๋์ค ์ด๋ฆ์ ๊ทธ๋๋ก ์ฌ์ฉ @Table - name, catalog, schema ๋ฑ๋ฑ. . ํ๋์ ์ปฌ๋ผ ๋งคํ @Column ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปฌ๋ผ๋ช ์ ์ค์ ํด์ค ์ ์๋ค. unique(์ค๋ฌด์์ ์ ์ฌ์ฉํ์ง ์๋๋ค -> ์ ๋ํฌ ์ ์ฝ์กฐ๊ฑด ์ด๋ฆ์ ์ค์ ํ ์ ์๋ค ๋์ @Table(uniqueCons.. ์ฌ์ฉ), length ๋ฑ ์ค์ ํ ์ ์๋ค. @Temporal ๋ ์ง ํ์ ๋งคํ ํ์ง๋ง LocalDate, LocalDateTime์ ์ฌ์ฉํ ๋๋ ์๋ต ๊ฐ๋ฅํ๋ค. @Enumerated enum ํ์ ๋งคํ default..

JPA์์ ๊ฐ์ฅ ์ค์ํ 2๊ฐ์ง - ๊ฐ์ฒด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋งคํํ๊ธฐ - ์์์ฑ ์ปจํ ์คํธ ์์์ฑ ์ปจํ ์คํธ๊ฐ ๋ญ๊น? JPA๋ฅผ ์ดํดํ๋๋ฐ ๊ฐ์ฅ ์ค์ํ ์ฉ์ด์ด๋ค. "์ํฐํฐ๋ฅผ ์๊ตฌ ์ ์ฅํ๋ ํ๊ฒฝ"์ด๋ผ๋ ๋ป. -> EntityManager.persist(entity); - persist๋ ์ฌ์ค DB์ ์ ์ฅํ๋๊ฒ ์๋๊ณ Entity๋ฅผ ์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅํ๋ค๋ ๋ป์ด๋ค. - ๋ ผ๋ฆฌ์ ์ธ ๊ฐ๋ ์ผ๋ก ๋์ ๋ณด์ด์ง ์๋๋ค. EntityManager๋ฅผ ํตํด์ ์์์ฑ ์ปจํ ์คํธ์ ์ ๊ทผํ๋ค. - ์ฌ๋ฌ๊ฐ์ EntityManager๊ฐ ํ๋์ ์์์ฑ ์ปจํ ์คํธ๋ฅผ ๋ฐ๋ผ๋ณธ๋ค. ์ํฐํฐ์ ์๋ช ์ฃผ๊ธฐ๋ ์ด๋ป๊ฒ ๋ ๊น? ๋น์์ - ์์์ฑ ์ปจํ ์คํธ์ ์ ํ ๊ด๊ณ๊ณผ ์๋ ์๋ก์ด ์ํ ์์ - ์์์ฑ ์ปจํ ์คํธ์ ๊ด๋ฆฌ๋๋ ์ํ ์ค์์ - ์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅ๋..
์๋์ ๊ฐ์ด ์์ฑํ์ ๋ ์ ์ฅ์ด ๋ ๊น? ์๋ฌ๊ฐ ์๊ธด๋ค. ์๋ํ๋ฉด 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..

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
์์ ์์์ ํตํ ๊ธฐ๋ฅ ์ฌ์ฌ์ฉ์ ๋ฐ์ํ ์ ์๋ ๋จ์ 1. ์์ ํด๋์ค ๋ณ๊ฒฝ์ด ์ด๋ ค์ - ์์ ํด๋์ค๋ฅผ ์กฐ๊ธ๋ง ์๋ชป ๋ณ๊ฒฝํด๋ ๊ทธ ํ์ ํด๋์ค๋ค์ด ๋น์ ์์ ์ผ๋ก ์๋๋ ์ ์์. ( ๊ณ์ธต๋๋ฅผ ๋ฐ๋ผ ์ ํ๋จ ) 2. ์๋ก์ด ์กฐํฉ์ด ์๊ธธ ๋ ๋ง๋ค ํ์ ํด๋์ค๊ฐ ์ฆ๊ฐ๋๋ค. ์ด๋ค ํด๋์ค๋ฅผ ์์๋ฐ๋์ง๋ ์ ๋งค 3. ์์์ ์ค์ฉํ ์ ์๋ค. ์ด์ ๊ฐ์ ๋จ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์๊น? - ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ๋ฌถ์ด์ ๋ ๋ณต์กํ ๊ธฐ๋ฅ์ ์ ๊ณต - ๋ณดํต ํ๋๋ก ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ๋ฐฉ์์ผ๋ก ์กฐ๋ฆฝ, ๊ฐ์ฒด๋ฅผ ํ์ ์์ ์ ์์ฑ/๊ตฌํจ ์์ํ๊ธฐ์ ์์ ์กฐ๋ฆฝ์ผ๋ก ํ ์ ์๋์ง ๊ฒํ ํ๊ณ ์ง์ง ํ์ ํ์ ์ธ ๊ฒฝ์ฐ์๋ง ์์์ ์ด์ฉํฉ๋๋ค! (๊ธฐ๋ฅ ์ฌ์ฌ์ฉ ์ ์ฐ์ง ์๋๋ก ์ฃผ์!) ์กฐ๊ฑด ๋ถ๊ธฐ์ผ ๊ฒฝ์ฐ ์ถ์ํ, ์์์ด ์ข์ต๋๋ค. -> ์๋๊ฐ ์ ๋๋ฌ๋๋ ์ด๋ฆ ์ฌ์ฉ ์์กด..