์ „์ฒด ๊ธ€

Spring/Spring ์ž…๋ฌธ

์Šคํ”„๋ง ์ž…๋ฌธ - (17) JPA(Java Persistence API)

JPA๋Š” ์ž๋ฐ” ์ง„์˜์—์„œ ORM(Object-Relational Mapping) ๊ธฐ์ˆ  ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ์ด๋‹ค ์‹ค์ œ์ ์œผ๋กœ ๊ตฌํ˜„๋œ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ตฌํ˜„๋œ ํด๋ž˜์Šค์™€ ๋งคํ•‘์„ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. JPA๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์˜คํ”ˆ์†Œ์Šค๋กœ๋Š” Hibernate๊ฐ€ ์žˆ๋‹ค ( JPA๋Š” ์ธํ„ฐํŽ˜์ด์Šค / ๊ตฌํ˜„ hibernate ) ORM(Object-Relational Mapping) ๋”๋ณด๊ธฐ ๊ฐ์ฒด-๊ด€๊ณ„ ๋งคํ•‘ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด์™€ ์ด๋กœ ์ธํ•œ ๋ฌธ์ œ๋“ค์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ธฐ์ˆ ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜ ์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Class์™€ RDB(Relational DataBase)์˜ ํ…Œ์ด๋ธ”์„ ๋งคํ•‘(์—ฐ๊ฒฐ)ํ•œ๋‹ค๋Š” ๋œป์ด๋ฉฐ, ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ์ฒด..

Algorithm/ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๊ทธ๋ฆฌ๋””์•Œ๊ณ ๋ฆฌ์ฆ˜ - 2. ์”จ๋ฆ„ ์„ ์ˆ˜

๋‚˜์˜ ํ’€์ด ์ผ๋Œ€์ผ ๋น„๊ตํ•ด์„œ ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ ๋ชจ๋‘(=and) ์ง€๋Š” ์‚ฌ๋žŒ 1๋ช…์ด๋ผ๋„ ์žˆ์œผ๋ฉด(=any) ๊ฐ•์˜ ํ’€์ด

Algorithm/ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๊ทธ๋ฆฌ๋””์•Œ๊ณ ๋ฆฌ์ฆ˜ - 1. ํšŒ์˜์‹ค ๋ฐฐ์ •

๋‚˜์˜ ํ’€์ด Selection Sort (์„ ํƒ ์ •๋ ฌ) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ ์ค‘, ์ตœ์†Œ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. 2. ํ•ด๋‹น ์ตœ์†Œ๊ฐ’์„ ๋ฐ์ดํ„ฐ ๋งจ ์•ž์— ์œ„์น˜ํ•œ ๊ฐ’๊ณผ ๊ต์ฒดํ•œ๋‹ค. 3. ๋งจ ์•ž์˜ ์œ„์น˜๋ฅผ ๋บ€ ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ˜๋ณตํ•œ๋‹ค. ํšŒ์˜ ๋๋‚˜๋Š” ์‹œ๊ฐ„ ๊ธฐ์ค€ ์ •๋ ฌํ•˜๊ธฐ ๊ฐ•์˜ ํ’€์ด ํšŒ์˜ ๋๋‚˜๋Š” ์‹œ๊ฐ„ ๊ธฐ์ค€ ์ •๋ ฌํ•˜๊ธฐ โ–ท key ์ธ์ž์— ํ•จ์ˆ˜๋ฅผ ๋„˜๊ฒจ์ฃผ๋ฉด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ •ํ•ด์ง. ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌ key ์‚ฌ์šฉ

Spring/Spring ์ž…๋ฌธ

์Šคํ”„๋ง ์ž…๋ฌธ - (16) ์Šคํ”„๋ง JdbcTemplate

์ˆœ์ˆ˜ Jdbc์™€ ๋™์ผํ•œ ํ™˜๊ฒฝ์„ค์ •์„ ํ•˜๋ฉด ๋œ๋‹ค. ์Šคํ”„๋ง JdbcTemplate๊ณผ MyBatis ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” JDBC API์—์„œ ๋ณธ ๋ฐ˜๋ณต ์ฝ”๋“œ๋ฅผ ๋Œ€๋ถ€๋ถ„ ์ œ๊ฑฐํ•ด์ค€๋‹ค. ํ•˜์ง€๋งŒ SQL์€ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์Šคํ”„๋ง JdbcTemplate ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ JdbcTemplateMemberRepository.class public class JdbcTemplateMemberRepository implements MemberRepository { private final JdbcTemplate jdbcTemplate; public JdbcTemplateMemberRepository(DataSource dataSource) { jdbcTemplate = new JdbcTemplate(dataSource); } Da..

Spring/Spring ์ž…๋ฌธ

์Šคํ”„๋ง ์ž…๋ฌธ - (15) ์Šคํ”„๋ง ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ

์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ DB๊นŒ์ง€ ์—ฐ๊ฒฐํ•œ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด์ž. MemberServiceTest : ์ˆœ์ˆ˜ํ•œ ์ž๋ฐ”์ฝ”๋“œ๋กœ test ( spring๊ณผ ๊ด€๋ จ์—†์Œ ) Database connection ์ •๋ณด๋„ ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ๋“ค๊ณ ์žˆ์Œ -> ํ…Œ์ŠคํŠธ๋ฅผ ์Šคํ”„๋ง์ด๋ž‘ ์—ฎ์–ด์„œ MemberSerivceIntegarionTest class ์ƒ์„ฑ ( MemberServiceTest ๋ณต์‚ฌ ) @SpringBootTest @Transactional class MemberServiceIntegarionTest { @Autowired MemberService memberService; @Autowired MemoryMemberRepository memberRepository; @SpringBootTest : ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•จ๊ป˜ ..

Spring/Spring ์ž…๋ฌธ

์Šคํ”„๋ง ์ž…๋ฌธ - (14) ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ  / ์ˆœ์ˆ˜ Jdbc

์ด์ „์— ์ด์šฉํ•ด์™”๋˜ ๋ฐ์ดํ„ฐ๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ๊ป๋‹ค ์ผœ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€์›Œ์ง„๋‹ค ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•ด์„œ ๊ด€๋ฆฌํ•ด๋ณด์ž H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์น˜ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜ ๊ถŒํ•œ ์ฃผ๊ธฐ: chmod 755 h2.sh ์‹คํ–‰: ./h2.sh jdbc:h2:~/test (์ตœ์ดˆ ํ•œ๋ฒˆ) ~/test.mv.db ํŒŒ์ผ ์ƒ์„ฑ ํ™•์ธ ์ดํ›„๋ถ€ํ„ฐ๋Š” jdbc:h2:tcp://localhost/~/test ์ด๋ ‡๊ฒŒ ์ ‘์† ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ ํ…Œ์ด๋ธ” ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— sql/ddl.sql ํŒŒ์ผ์„ ์ƒ์„ฑ drop table if exists member CASCADE; create table member ( id bigint generated by default as identity, name varchar(255), prima..

hello_u
๐Ÿ˜œ