일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스레드
- diary
- 메서드
- #스파르타내일배움캠프TIL
- 인스턴스
- static
- KPT
- Java
- 내일배움캠프
- Github_token
- 감사기록
- 성장기록
- 생성자
- 클래스
- Java의 이점
- Diary 해우소
- 스파르타내일배움캠프
- 스파르타내일배움캠프TIL
- 회고록
- #내일배움캠프
- 객체지향 언어
- Token
- 포맷은 최후의 보루
- Git
- 해우소
- GitHub
- TiL_1st_0419
- 변수의 다양성
- JVM
- #스파르타내일배움캠프
- Today
- Total
목록Organizing Docs/Spring Docs (10)
몬그로이
일대다 단방향일 때 예를 들어Team 과 Member 이라는 두 테이블이 있고, Team 에서 Member 를 참조하는 상황 TeamidList memberList Memberidx TEAMTEAM_ID(PK)X MEMBERMEMBER_ID(PK)TEAM_ID(FK) 위와 같이 TEAM 테이블에는 참조하는 대상인 MEMBER에 대한 정보가 없다Team 엔티티 설정@OneToMany@JoinColumn //꼭 사용해야함 - 그렇지 않으면 자동으로 중간테이블 생성됨(조인테이블)List members = new ArrayList(); query에서 team.getMembers().add(member);를 입력한 경우 추가 query가 나가면서 Member 테이블이 업데이트로 나오기때문에테이블이 많은 상태에서..
mvc 패턴에 대해서 설명해주세요. Model - View - Controller 로 구성된 소프트웨어 디자인 패턴MVC 구조가 어떤 이점을 가져다 주는 것일까?관심사의 분리 1. 관심사의 분리2. 컴포넌트의 명확한 역할 분리로 인해 서로간의 결합도를 낮출 수 있다.3. 코드의 재사용성 및 확장성을 높일 수 있다.4. 서비스를 유지보수하고 테스트하는데 용이해진다.5. 개발자 간의 커뮤니케이션 효율성을 높일 수 있다 1. 컴포넌트의 명확한 역할 분리로 인해 서로간의 결합도를 낮출 수 있다.MVC 패턴으로 구현된 소프트웨어나 애플리케이션은 Model, View, Controller 3가지 컴포넌트로 명확하게 구분되기 때문에 Model은 데이터 및 비즈니스 로직을 담당하고, View는 사용자 인터페이스를 표현..
동시성 제어가 안 되는 이유- Spring AOP 로 인해 프록시 객체가 만들어지고원래 객체인 service의 transactional 때문bc2인스턴스자르파일 빌드해서 배포서버가 한 대 일때는 ok여러 대일땐 synchronized 안 먹힘**@sync~~자바에서 메서드 위에 적으면 한 개씩만 들어가도록 만들어줌 (또는 class 위에 적음)단, 서버가 여럿이면 제어 안 됨여러 서버에서 A 메서드에 동시 접근할 수 있으므로따라서 이 방법 안 씀DB락(비관적 락)DB 레코드에서 직접적으로 Lock 걸어 제어비관적 락 디폴트는 s-lock 읽기 잠금 @Lock(LockModeType.PESSIMISTIC_READ) in Repositoryx-lock 쓰기 잠금 (다른 lock 이 걸려있으면 안 됨)tra..
Parsing query method names is divided into subject and predicate. The first part (find…By, exists…By) defines the subject of the query, the second part forms the predicate. The introducing clause (subject) can contain further expressions. Any text between find (or other introducing keywords) and By is considered to be descriptive unless using one of the result-limiting keywords such as a Distinc..
QueryDSL 이란Domain Specific Language 를 사용하여 SQL 을 생성하는 도구Hibernate의 @Query 어노테이션을 사용하여 JPQL을 정의하거나,JDBC Template을 사용하여 직접 SQL 쿼리를 작성하는 대신 사용 타입 안정성Java 언어의 타입 시스템을 활용하므로 코드를 컴파일할 때 타입 안정성을 보장SQL 문법 오류를 미리 잡을 수 있음 객체지향적인 쿼리Java 언어의 문법을 사용하여 데이터베이스 쿼리를 표현하므로개발자가 직관적으로 이해하고 유지보수할 수 있음 동적 쿼리 작성의 용이성풍부한 문법과 메서드 체이닝을 통해 동적 쿼리를 간편하게 작성할 수 있습니다. 필요에 따라 조건을 추가하거나 조합할 수 있어 복잡한 쿼리도 효율적으로 처리할 수 있습니다. 다양한 데이..
1. Auditing- 기본 사용법- 감사기능(By)까지 추가하여 사용하는 방법 두 가지 2. Dynamic Insert/UpdateAuditing누가/언제 생성/수정 했는지 Column에 기록하는 기능 1. 메인 application 에 @EnableJpaAuditing 를 달아준다@EnableJpaAuditing@SpringBootApplicationpublic class Application { 2. Auditing 기능을 사용할 Entity 클래스 위에 @EntityListeners(AudigingEntity.class) 를 달아준다@Getter@MappedSuperclass@EntityListeners(AuditingEntityListener.class)public class TimeStamp ..
@Controller@RestController= @Controller + @ResponseBody클래스의 모든 메서드가 @Responsbody를 필요로 할 때 사용하면 좋음 따라서 view를 반환해야 하는 메서드가 있을 경우는 Controller를 사용하는 것이 좋 @Controller 가 붙은 클래스에서 사용하는 URL Annotation@GetMapping@PostMapping@PutMapping@DeleteMapping @RequestMapping("/url")Request가 들어왔을 때 받는 클래스를 표시한다중복되는 URL를 단축**URL ("/주소/redirect:/{정보}")**정보: View name, redirect URL, tex, Java 객체 @ResponseBody문자열을 그대로 ..
Step 1. 사용되기 위한 준비단계 스프링 컨테이너 생성 → 객체(빈) 생성 → 의존관계 주입(예외: 생성자)→ 스프링이 초기화 콜백(알림) → 빈 초기화(필요값이 다 들어 있는 상태로 일을 시작할 수 있는 상태) Step 2. 사용에서 소멸까지의 단계 초기화 상태 → 빈 사용 → 스프링이 소멸 콜백(알림) → 빈 소멸 **선 준비 (Step1) 후 사용 (Step2)더보기자바에서 사용 준비를 마치고 (데이터 세팅을 마치고)동작하는 등의 행위는 별도의 초기화 메서드로 분리해놓는 것이 좋음 동작할 때는 외부 커넥션 등을 거치므로 초기화 된 상태에서 시작하는 것이 좋음물론 단순한 코드의 경우는 예외 **콜백하는 방법 (하단 기술)인터페이스(InitializingBean, Disposab..