본문 바로가기

전체 글62

[Spring] DI, DIP, IoC, 컨테이너 1. 의존성 주입(Dependency Injection, DI) 의존성 주입은 메인 모듈이 직접 다른 하위 모듈에 대한 의존성을 주기보다는 중간에 의존성 주입자(Dependency Injector)를 두고, 이를 활용해 하위 모듈에 대한 의존성을 간접적으로 주입하는 방식이다. (인프런-CS지식의 정석 참고) 개념을 이해하고 나니 굉장히 적절한 설명이었지만, 처음 접했을 때는 이해하기 어려웠기 때문에 풀어서 설명해보려고 한다. - 의존이란? B가 변하면 A에 영향을 미치는 관계가 있다고 하자. 이 때 의존관계는 어떻게 될까? A가 B에 의존한다(A → B)고 할 수 있을 것이다. 아직은 뭐 그냥저냥 당연한 이야기처럼 느껴지지 않는가? 하지만 이 간단한 이야기는 이 글에서 첫번째로 중요한 개념이다. 이 관계.. 2023. 4. 24.
[TIL] DTO 활용하기 DTO (Data Transfer Object) 란? 계층 간 데이터 교환을 위해 사용하는 객체 로직을 가지지 않는다. 일반적으로 DTO는 순수한 데이터 객체로, 속성과 그 속성에 접근하기 위한 getter, setter 메소드만 가진 클래스다. 기존 코드 @Entity public class Board { @Id @GeneratedValue(strategy = GenerationType.AUTO) @JsonIgnore private Long id; @Column(nullable = false) private String username; @Column(nullable = false) @JsonIgnore private String password; @Column(nullable = false) priv.. 2023. 4. 17.
DB 엔티티 연관관계 단방향 연관관계 @ManyToOne 아래 예시 코드에서 Many는 Member(테이블명)이고, One은 Team(컬럼명)이다. '하나의 Team에 여러명의 Member가 있다' 로 이해할 수 있다. @Entity @Getter @Setter public class Member { @Id @Column(name = "member_id") private String id; private String username; @ManyToOne @JoinColumn(name="team_id") private Team team; public void setTeam(Team team) { this.team = team; } } @Entity @Getter @Setter public class Team { @Id @Col.. 2023. 4. 17.
[TIL] 스프링 MVC 패턴, 동작 원리 - 스프링 MVC 패턴의 등장 Java 공부를 이제 막 시작하고 있지만, 벌써 패턴이라는 단어가 익숙하게 들린다. 싱글톤 패턴이나 빌더 패턴 등등이 있는데.. 지금은 이런 패턴들에 대해 알고 있다라기 보다는 들어봤다라는 말이다.(하하.. 앞으로 공부를 이어나가며 관련 내용도 정리해보겠다!) Java를 모르던 시절 어깨너머로 무슨무슨 패턴이라는 말을 들었을 때는 마치 'Java 코드의 실행은 main 메서드에서부터'와 같이 Java를 사용하기 위해 정해진 규칙 쯤으로 생각했었다. 지금은 패턴이라는게 코드의 유지보수에 대한 편리함을 제공하기 위해 탄생한 개념이라는 것을 알고 있다. 처음으로 머릿말을 길게 적어봤는데, 지금 정리할 내용도 '패턴'에 대한 이야기라서 그렇다. MVC 패턴은 Model, View,.. 2023. 4. 17.