본문 바로가기

Java Spring Boot

(82)
SpringBoot) Service interface와 Serviceimpl 구현체로 나눠야 될까? 1) interface(인터페이스) AND impl (구현체)로 나눠야 할까? 👎 NO  :  만약 인터페이스와 구현체를 1:1로 구성된 프로젝트에서는 이런 추상화를 적용하는 것이                  불필요한 계층 구조 일수도 있음.👍 YES : 하나의 인터페이스에 여러개의 구현체를 관리해야 되는 상황이라면,             interface - impl 구조로 나누는게 유지보수 측면에서 효율적           1) 협업에서 설계와 구현을 다른 사람이 하는 경우에 적합함            2) 현재는 1:1 구조이지만, 차후에 확장을 할 수 있기에, 확장성있게 최초부터 설정해둔다 - 과거에는 Spring에서 AOP(Aspect Oriented Programming / 관점 지향형 ..
동시성 접근 관련 (비관적 락 vs 낙관적 락) 비관적 락(Pessimistic Locking) :: DB에서 처리비관적 락은 동시성 문제를 해결하기 위해 데이터를 수정하려는 트랜잭션이 해당 데이터에 먼저 락을 걸어 다른 트랜잭션이 접근하지 못하게 하는 방식이다. 이러한 방식은 동시성 문제를 피하기 위해 트랜잭션 충돌이 발생할 것이라 가정하고 미리 락을 걸어 동시 접근을 차단한다. 비관적 락은 대기 시간이 길어질 수 있으며, 데드락(Deadlock) 문제에 대한 처리가 필요하다.비관적 락은 사용자들이 같은 데이터를 동시에 수정할 것이라고 예상될 때 사용 낙관적 락(Optimistic Locking) :: APP부분에서 처리낙관적 락은 동시성 문제가 발생할 가능성이 낮다고 가정하고, 여러 트랜잭션이 동시에 데이터에 접근할 수 있도록 허용한다. 하지만 실..
front에서 back으로 body값 전달 시(List 형태인 경우) 상황매출 입력하려고 할 때, 사용자가 입력한 값을 back-end에 넘기려고 하는데,상품명,수량,합계 금액은 단일값이 아니라, 복수형이라서 어떻게 보내야 될까?   해결법1) 프론트에서 상품명+수량을 묶어서 백엔드에 전달 (묶어서 전달하지 않으면, 해당 상품명이 어떤 수량과 매칭이 되는지 알 수 없다)   아래와 같이 salesDate 변수에 담아서 전달(=JSON 객체 생성)const [menuCode, setMenuCode] = useState("");const [salesCount, setSalesCount] = useState(""); const salesData = { menuCode: menuCode, salesCount: parseInt(salesCount, 10), //..
@OneToMany @ManyToOne @Entitypublic class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username;1. Member가 Many부분이고, fetch=FetchType.EAGER를 통해, 해당 테이블 관련 내용이 실행됐을때에만 실행됨. @ManyToOne(fetch = FetchType.EAGER)2. Team클래스(entity)의 column이름, 즉 name=""여기에 해당하는 값 @JoinColumn(name = "TEAM_ID")3.Team클래스 타입의 변수team(아무거나 상관없음) priva..
terminal 단축키(mac os) / zsh, oh-my-zsh, iterm2 mac기준 현재 디렉토리 위치 : pwd(print working directory)window -> cd디렉토리 위치에 있는 파일들 : lswindow -> diroh-my-zsh 설정 하는법 Homebrew 사이트 접속코드 터미널에 넣기터미널에서 brew install zshzsh —version로 버전 확인 가능기본이 bash로 되어있다면, zsh로 바꿔주기which zsh : 위치 확인 가능위치가 zsh로 안되어 있다면 —> chsh -s /bin/zsh (원하는 위치로 변경)(또는 한번에 chsh -s ‘which zsh’로 변경 가능)터미널 재시작 후 —> echo $SHELL (현재 사용 중인 쉘의 경로 출력) which zsh과 차이점 * echo $SHELL : 현재 로그인 쉘의 경로를 ..
java) stream(스트림)
ArrayList<>(); / LinkedList<>();
자료형의 종류(기본 자료형, 참조 자료형)