목록웹 (104)
개발일기장
Spring에서 의존관계를 주입 할 때 여러가지 방법이 있음 1. 생성자 주입 @Autowired //생성자가 하나면 Autowired 안 사용해도 되고 // 2개 이상이면 @Autowired 지정해 줘야함. public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } 해당 방식을 사용 할 때에는 각각의 필드에 private final을 설정하는게 좋다. 2. 필드 주입 @Autowired private MemberRepository memberReposit..
@ComponentScan // 이게 있으면 이거 파일 밑에 @Component 가 붙은 class들을 다 등록할 수 있음 1. basePackage
https://tlqckd0.tistory.com/93 Spring 공부 01. Configuration, Bean import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 이거 사용해서 Config 를 등록 할 수 있다. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig. tlqckd0.tistory.com ApplicationContext applicationContext = new AnnotationConfigApplicationContext(App..
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 이거 사용해서 Config 를 등록 할 수 있다. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 그래서 이거를 사용하면 등록한 것들을 소환? 할 수 있는데 @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } 이렇게 등록을 해두면 어떻게 소환을 하느냐 // 1 MemberSer..
학부생때 React재밌게 했었는데 다 까먹어서 틈틈히 정리를 해둬야 할 것같다.. 기본 setting const [params, setparams] = useState([ { idx: 0, paramName: 'test', value: 10, flag: true }, ]); 일단 LIST에 기본값을 넣어두고 렌더링을 하자 //화면에 표시해줌 const showParamList = () => params.map((item, idx) => ( {idx} { e.preventDefault(); params[idx].paramName = e.target.value; setparams([...params]); }}/> { e.preventDefault(); params[idx].value = e.target.va..
SQLP자격증 공부하는 것 때문에 DB단에서의 transaction은 많이 봤었는데 웹서버 단에서는 따로 공부를 하지 않았음.. 그냥 쿼리에 for update를 사용한다거나, 아니면 서버에서 transaction시작 ~ 끝 소스코드 추가하는 정도.. 일단 모든 transaction의 시작은 connection을 받아오는것으로 부터 시작됨 그리고 그 connection같은 경우 jdbc에서 interface에서 추상화 되어있기 때문에 로직이랑 완벽?하게 분리 할 수 있음 conn.setAutoCommit(false); /* connection을 사용한 logic의 수행 select 문에서 for update를 사용하지 않으면 굳이 저렇게 사용할 필요는 없긴함 DML 을 위한 작업임 */ if( 성공시 )..
데이터베이스 커넥션을 획득하기 위한 복잡한 과정.. 1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다. 2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 물론 이 과정에서 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생한다. 3. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달한다. 4. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성한다. 5. DB는 커넥션 생성이 완료되었다는 응답을 보낸다. 6. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다. 이렇게 나와있다 단순히 local에서 확인하는 정도면 느낄 수 없겠지만, 대량의 transaction 이 발생하는 상황에..
JDBC(Java Database Connectivity)는 Java에서 db에 접속 하고 사용할 수 있도록 하는 API임 대표적으로 3가지 기능을 Interface로 정의해서 제공을 해줌 Connection(연결) / Statement(쿼리쏘기) / ResultSet(결과) 근대 이거는 그냥 Interface이기 떄문에 각각의 벤더사가 자기의 제품에 맞게 저거를 상속받고 구현을 해야함 그래서 JDBC를 사용할 떄 원하는 회사(Oracle, Mysql, DB2, PostgreSQL)의 jdbc를 import 하면 되는 부분임 (근대 interface는 동일하지만 sql쿼리 문법은 조금씩 되는게 있고 안되는게 있기 때문에 주의) 일단 DB를 켜주자 리눅스면 systemctl start mysql 하면 될듯..