분류 전체보기(89)
-
[백준]2525번:오븐 시계
문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진..
2023.11.13 -
세션 VS JWT 세션을 택하게 된 이유
프로젝트 진행 고려 사항 User 기능 ( 로그인, 회원가입, 리뷰작성, 회원탈퇴, opt인증) 과 같은 기능 구현 담당했다. 로그인 기능구현 중 사용자가 로그인 했을때 이 로그인 세션 정보를 어떻게 계속 유지하여 인증을 받은 사용자만이 카페 주문 예약, 리뷰 작성 과 같은 기능을 사용 할수 있을지 고민하다 로그인 상태를 유지하기 위한 방법으로 세션 ,JWT 를 찾아보게 되었다. 세션을 이용한 상태 유지 세션 ? 세션을 이용한 방법은 사용자가 로그인시 서버는 식별자인 sessionid를 생성한 후 server에 저장 한 다음 사용자에게 응답 결과로 sessionid를 보내준다 . 그러면 사용자는 그 세션아이디를 저장하고 요청을 보낼때마다 세션 id를 같이 보내며 로그인 상태를 유지 할수 있다. 세션 방식..
2023.04.25 -
스프링 트랜잭션 동기화와 DB Transaction isolation level 은 어떤 연관성이 있을까?
트랜잭션 동기화 -트랜잭션 동기화라는 기술은 트랜잭션을 시작하기 위해 생성한 Connection 객체를 별도의 특별한 공간에 보관하고, 이 커넥션이 필요한 곳 (여기서는 DAO) 에서 커넥션을 꺼내 쓰는 방식이다. 근데 왜? 커넥션을 하나만 사용해야 하는가??? 우선 DB에서의 트랜잭션에 대해서 이해해 보자 ! 1. 사용자는 WAS,DB접근 툴을 통해서 DB에 접근 할수 있다. 사용자는 DB서버에 연결 요청을 하고 WAS는 이를 대신해서 DB와 커넥션을 연결해 준다 . 2. WAS의 커넥션/DB의 커넥션이 연결되면 DB는 세션을 하나 만들어둔다. 3. 커넥션을 통해 세션이 생성되면 WAS에서 DB로 오는 모든 요청은 DB세션이 처리하게 된다. 사용자가 커넥션을 닫거나 DB관리가 세션을 강제 종료하면 DB..
2023.04.06 -
스프링 트랜잭션 이해
@Transactional을 통해 선언적 트랜잭션 방식을 사용시 어노테이션 하나로 트랜잭션을 적용 할 수 있다. 이 기능은 트랜잭션 관련 코드가 눈에 보이지 않고 AOP 기반으로 동작하기에 실제 트랜잭션이 적용 되고 있는지 확인하기 어렵다. 스프링 트랜잭션이 실제 적용되고 있는지 확인 하는 방법 @Transactional 을메서드나 클래스에 붙이면 해당 객체는 트랜잭션 AOP 적용의 대상이다 . 실제 객체 대신에 트랜잭션을 처리해주는 프록시 객체가 스프링 빈에 등록된다 , 그리고 주입을 받을 때도 실제 객체 대신에 프록시 객체가 주입된다. 스프링 컨테이너에 트랜잭션 프록시 등록 @Transactional 어노테이션이 메서드에 하나라도 있으면 트랜잭션 AOP는 프록시를 만들어서 스프링 컨테이너에 등록 실제..
2023.04.06 -
HMAP과 CHECKSUM
HMAC(Hash-based Message Authentication Code) 메시지 인증 코드(Message Authentication Code, MAC)는 메시지의 인증에 쓰이는 정보(코드)이다. 메시지의 무결성 및 신뢰성을 보장하는 용도로 MAC을 사용한다. -메세지 무결성을 보장하지만, 그사람이 내가 아는 사람인지 보장은 하지 않는다. -이를 위해 송수신자는 shared secret(공유된 비밀)을 메세지에 붙여서 해쉬함수를 실행한다. (메세지를 보낸 사람이 내가 아는 그 사람인가?) *메세지 무결성 hmac 인증을 위한 시크릿 키와 임의의 길이를 가진 메세지를 해시 함수 ( 알고리즘)을 사용해서 생성한다. 해시함수로는 MD5,SHA-256 과 같은 일반 적인 해시 함수를 그대로 사용 할수 있다..
2023.03.28 -
Thread
connetcion adder가 별도의 쓰레드로 커넥션풀에 데이터를 추가한다, 이때 Thread.sleep를 줘야 adder가 들어가는 것이 보인다. 히카리 설정 값들도 확인이 가능하다 maxpoolsize등 보면 현재 total갯수는 10개이고 active 사용중인 것이 2개 , 이다, i 대기 중 인것은 8개 사용하고 반환하지 않으면 안된다 별도의 쓰레드가 커넥션을 채우는 이유가? 애플리케이션을 실행할떄 커넥션 풀을 채울때 까지 마냥 대기하고 있다면 애플리키이션 실행 시간이 늦어진다 . 히카리 프록시 커넥션 ,은 히카리가 만들어준 인스턴스 객체인데 내부에 매핑해서 커넥션 1,2를 가지고 있다 히카리 프록시 커넥션 안에 실제 jdbc커넥션 1,2개가 들어있다. 만약 풀에 1개가 있다면 바로 반환이 되는..
2023.03.26