๐ฉ๐ป๐พ
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 4์ฃผ์ฐจ ํ๊ณ ๋ณธ๋ฌธ
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 4์ฃผ์ฐจ ํ๊ณ
์ฅฌ์ค์ด 2024. 8. 4. 22:203์ฃผ์ฐจ ํ์ต์ผ์ง๋ ์ ์ฒ๊ธฐ ์ค๊ธฐ ๋งํ ๋ฒผ๋ฝ์น๊ธฐํ๊ณ ์ํ ๋ณธ๋ค๊ณ ๋ชป ์ผ์ง๋ง,,,(๊ฐ์ฑ์ ๊ฒฐ๊ณผ ํฉ๊ฒฉ,,,โญ๏ธ) 4์ฃผ์ฐจ๋ ๋ค์ ์ด์ฌํ ์จ๋ณด๋๋ก!

4์ฃผ์ฐจ์ ๋ฌด์์ ํ๋์ง ํฌ๊ฒ ๋๋ ๋ณด๋ฉด,
JPA ํ์ต / ํ์ง์๋ถ๋ค์ ํน๊ฐ / ํ๋ก์ ํธ ๊ธฐํ
์ด ์์๋ค๊ณ ํ ์ ์์ ๊ฑฐ ๊ฐ๋ค!
1๏ธโฃ JPA ํ์ต
JPA๋?
- Java Persistence API
- ORM(Object-Relational Mapping) ๊ธฐ์ ์ ํ์ค ์ธํฐํ์ด์ค
- Java ์ ํ๋ฆฌ์ผ์ด์ ์์ RDBMS๋ฅผ ์ฌ์ฉํ ๋ ์ด๋ฅผ ๊ฐ์ฒด์ ๋งคํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค
- JPA๋ฅผ ์ํด์ ๊ตฌํ์ฒด๊ฐ ํ์ํ๋ฐ, Hibernate๊ฐ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋จ
์์ ์ฝ๋์ ํจ๊ป ์์๋ณด๋ JPA ์ด๋ ธํ ์ด์ ์ฌ์ฉ๋ฒ
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Getter
@Setter
@ToString
@SequenceGenerator(name = "team_seq", sequenceName = "team_seq_id", initialValue = 1, allocationSize = 50)
@Entity
public class Team {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "team_seq")
@Column(name = "team_id")
private long teamId;
@NonNull
@Column(name = "team_name", length = 20)
private String teamName;
}
- @SequenceGenerator : ์ํ์ค๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ์ (= ์ํ์ค ์์ฑ๊ธฐ)
- @Entity : Team ํด๋์ค๋ฅผ DB ๋ด์ ํ ์ด๋ธ๋ก ์์ฑ
- @Id : ๊ธฐ๋ณธํค๋ก ์ค์
- @GeneratedValue
- strategy : ์ํ์ค๋ฅผ ์ฌ์ฉํ ํค ์์ฑ ์ ๋ต
- generator : ์ฌ์ฉํ ์ํ์ค ์์ฑ๊ธฐ ์ด๋ฆ
- @NonNull :
- @Column(name = " ? ? ? ") : ์ํฐํฐ ํด๋์ค์ ํ๋๋ฅผ DB ํ ์ด๋ธ์ column์ ๋งคํํ๊ธฐ ์ํด ์ฌ์ฉ
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Getter
@Setter
@ToString
@SequenceGenerator(name = "member_seq", sequenceName = "member_seq_id", allocationSize = 50, initialValue = 1)
@Table(name = "ce_member") // ์ค์ ์์ฑ๋๋ table ์ด๋ฆ
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "member_seq")
@Column(name = "member_id")
private long memberId;
@NonNull
@Column(length = 20)
private String name;
@NonNull
@OneToOne // To ๊ธฐ์ค ์์ ์๋๊ฒ ๋ฉค๋ฒ(์ฃผ์ฒด), ๋ค์ ์๋๊ฒ ํ -> ๊ฐ ์ ์๋ ํ ํ์ ์์
@JoinColumn(name = "team_id")
private Team teamId;
}
- @OneToOne : JPA์ ๊ด๊ณ ๋งคํ ์ ๋ํ ์ด์ ์ผ๋ก, ์ผ๋์ผ ๊ด๊ณ๋ฅผ ๋ํ๋
- @JoinColumn : ์ธ๋ํค๋ฅผ ์ง์ -> ์ ์ฝ๋์์๋ team_id ๋ฅผ ์ธ๋ ํค๋ก ์ฌ์ฉ
+ properties ์ค์ ๋ฌธ์
์๋ ์ค์ ๋ฌธ์์์ <property name="hibernate.hbm2ddl.auto" value="?" />์์ value๊ฐ none์ผ ๊ฒฝ์ฐ์๋ ์ด๋ฏธ ์์ฑ๋์ด ์๋ ํ ์ด๋ธ์ ์ฌ์ฉํ๊ฒ ๋ค๋ ์๋ฏธ๊ณ , "create"์ผ ๊ฒฝ์ฐ์ ์กด์ฌํ๋ ํ ์ด๋ธ์ dropํ๊ณ ์๋ก ์์ฑํด์ crud๋ฅผ ์ํํ๊ฒ ๋ค๋ ์๋ฏธ
<!-- oracle ์ค์ ์ ๋ณด -->
<properties>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe" />
<property name="javax.persistence.jdbc.user" value="scott" />
<property name="javax.persistence.jdbc.password" value="tiger" />
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
<property name="hibernate.show_sql" value="true" />
<!-- <property name="hibernate.format_sql" value="true" /> -->
<property name="hibernate.hbm2ddl.auto" value="none" />
</properties>
2๏ธโฃ IT ํ์ง์๋ถ๋ค์ ํน๊ฐ
ํ์คํ, ๋ฐ์ดํฐ, ํด๋ผ์ฐ๋, ์ด๋ ๊ฒ ์๋ก ๋ค๋ฅธ ๋ถ์ผ์ ํ์ง์ 3๋ถ๊ป์ ์ค์ ์ ํน๊ฐ์ ์งํํด์ฃผ์ จ๋ค.
3๋ถ ๋ชจ๋ ๋น์ ๊ณต์์ จ๊ณ , ์ฝ๋ฉ์ ๋ฆ๊ฒ ์ ํ์ จ์์๋ ๋ถ๊ตฌํ๊ณ ๋๋ฌด ๋๋จํ ์ปค๋ฆฌ์ด๋ฅผ ๊ฐ์ง๊ณ ๊ณ์ ์ ์์ผ๋ก ๊ณ์ '์,,,, ๋๋จํ๋ค,,,,'๊ณ ์๊ฐํ๋ค ๐ฎ
์ทจ๋ฝ๋ฅผ ์ํ ๊ฟํ๐ฏ๋ค๋ ๋ง์ด ์๋ ค์ฃผ์ จ๋๋ฐ ์ ๋ง ์๊ฐ์ง๋ ๋ชปํ ๋ถ๋ถ๋ค๋ ์์๊ณ , '์ด๋ฐ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ ๊ทน์ ์ผ๋ก ์๋ํด๋ด์ผ๊ฒ ๋ค' ์ถ์ ๋ด์ฉ๋ค๋ ๋ง์์ ๋๋ฌด ์ ์ตํ ์๊ฐ์ด์๋ค.
๊ทธ๋ฆฌ๊ณ 3๋ถ ์ค์ ๋ง์นจ ๋ด๊ฐ ์ฌํด ์๋ฐ๊ธฐ์ ์ต์ข ๋ฉดํ๐ฅฒํ ๊ธฐ์ ์ด ์ํ ๊ทธ๋ฃน ๊ณ์ด์ฌ์์ ๊ทผ๋ฌดํ๊ณ ๊ณ์ จ๋ ํ์ง์๋ถ์ด ๊ณ์ จ๊ณ ,
๋ด๊ฐ ๋ฉด์ ๋ ๋ฐ์ ์ง๋ฌธ๊ณผ ๊ด๋ จํ ๊ธฐ์ ์ ๋ค๋ฃจ๋ ๋ถ์์์ ๊ทผ๋ฌดํ์ ๋ค๊ณ ํด์ ํน๊ฐ ๋๋๊ณ ํด๋น ๊ธฐ์ ์ ๊ด๋ จํ์ฌ ์ด๊ฒ์ ๊ฒ ๋ฌผ์ด๋ณด๊ธฐ๋ ํ๋ค!(์์ ๋ญํค๋นํค๐๐๐ + ๋ช ํจ๋ ๋ฐ์๋ค,,,ํํํํ)
๋๋ ์คํฐ๋ธ ์ก์ค์ 'Connecting the dots' ์ฐ์ค์ด ๋ด ๊ฐ์น๊ด๊ณผ ์ ๋ถํฉํด์ ์ข์ํ๋ค!
๊ฐ์๊ธฐ ์ด ์๊ธฐ๋ฅผ ์ ํ๋๋ฉด, ๋ด๊ฐ ํ๋ ๋ชจ๋ ๊ฒฝํ์ด ๊ฒฐ๊ตญ ๋ค ์ฐ๊ฒฐ๋์ด ๋์๊ฒ ํฐ ๊ฐ์น๋ฅผ ์ค๋ค๋ ๊ฒ์ ํ์ง์๋ถ์ ๊ฒฝํ์ ๋ค์ผ๋ฉด์ ํ ๋ฒ ๋ ๋๊ผ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋๊น ๋๋ ๊ณ์ํด์ ๋ด๊ฐ ๋์ธ ์ํฉ์ ๋งค ์๊ฐ ์ต์ ์ ๋คํด ํฐ ๊ฒฐ์ค์ ์ป๊ธฐ๋ฅผ ๊ฐ์ ํ ๋ฐ๋ผ์ผ์ง,,,๐ฅ๐๐ป
๐ ======== ์คํฐ๋ธ ์ก์ค ์ฐ์ค์ด ๊ถ๊ธํ๋ค๋ฉด ์๋ ๋งํฌ ํด๋ฆญ ======== ๐
https://studying-it.tistory.com/19
์คํฐ๋ธ์ก์ค์ ๋ช ์ฐ์ค(Connecting the dots)
"Connecting the dots" ์ ํ์ CEO ์คํฐ๋ธ ์ก์ค(Steve Jobs)์ ์ฐ์ค ์ค ๊ฐ์ฅ ์ ๋ช ํ ๊ฒ์ Stanford ๋ํ๊ต์์์ ์ฐ์ค์ด๋ค. Stanford ๋ํ๊ต์์ ์คํฐ๋ธ ์ก์ค๋ ์์ ์ ์ธ์์ ๊ด๋ จ๋ ์ด์ผ๊ธฐ 3๊ฐ์ง๋ฅผ ํ๋๋ฐ ๊ทธ
studying-it.tistory.com
3๏ธโฃ ํ๋ก์ ํธ ๊ธฐํ ๋จ๊ณ
08.13 ~ 08.16์ ๊ฐ๋ฐ์ ์งํํ ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ๋ ์๊ฐ์ ๊ฐ์ก๋ค.
์ด๋, ๊ฐ์ฌ๋๊ป์ ๋ง์ํด์ฃผ์ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ELK๋ฅผ ์ฌ์ฉํด์ ๋ก๊ทธ ๋ถ์
2. ์์ต๊ตฌ์กฐ ๊ณ ๋ ค
3. RDBMS ํ๋ก์์ ํ๋ ๊ตฌ์ถํด์ ์ ์ฉ
์ด์ธ์๋ ๋ค๋ฅธ ์ ์ฝ์กฐ๊ฑด๋ค๋(ex. gitbash ์ฌ์ฉ) ์์์ง๋ง, ์ 3๊ฐ์ ์กฐ๊ฑด์ ์ถฉ์กฑ์ํฌ ์ ์๋ ํ๋ก์ ํธ ์ฃผ์ ๋ฅผ ์ ์ ํ๋ ๋ฐ์ ์์ด์ ์ด๋ ค์์ด ์์๋ค.
๊ทธ๋๋ ๋คํํ ์ข์ ์ฃผ์ ๊ฐ ๋์๊ณ , ์ฌ๋ฏธ์๋ ํ๋ก์ ํธ๊ฐ ๋ ๊ฑฐ ๊ฐ๋ค! (HINT : ๐ฅ โ๏ธ ๐ณ ๐ฉ๐ป๐ค ๐ง๐ป๐ค ๐)
๋ชฉ์์ผ ์์ ๋ง๋ฐ์ง์ ์ฃผ์ ๋ฅผ ์ก์์ ๊ธ์์ผ์๋ ERD ์์ ๊ณผ ๋๋ต์ ์ธ UI๋ฅผ ๊ตฌ์ํ๋๋ฐ, ์ค๋๋ง์ DB ๋ชจ๋ธ๋ง ํ๋ ค๋๊น ๋จธ๋ฆฌ๊ฐ ์ ์ ๋์๊ฐ,,,,๋ค,,,,
๋์์ค๋ ์ฃผ์ ์ต๋ํ ๋นจ๋ฆฌ ๋ง๋ฌด๋ฆฌ ํ๊ณ , ๊ธฐ๋ฅ๋ช ์ธ์ ์์ฑ๋ ํ๊ณ ํด์ผ๊ฒ ๋ค,,!! ๋ณธ๊ฒฉ์ ์ธ ๊ฐ๋ฐ ์ ์ ๋จ์ ์ผ์ฃผ์ผ ๋์ ๋ฌธ์ ์์ ๋ค ํ๊ณ ํ๋ ค๋ฉด ๋ ๋ฐ์๋ ๋ฐ์ ํ ์ฃผ๊ฐ ๋๊ฒ ๊ตฐ 5์ฃผ์ฐจ๋ ์ดํ ํ๐๐ป๐ฅ

'Activity > ์ฐ๋ฆฌFISA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 6์ฃผ์ฐจ ํ๊ณ (0) | 2024.08.25 |
---|---|
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 2์ฃผ์ฐจ ํ๊ณ (0) | 2024.07.21 |
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 1์ฃผ์ฐจ ํ๊ณ (3) | 2024.07.13 |