TIL 125

브라우저에 url을 치면 일어나는 일

1. 해당 도메인에 대한 주소를 위해 DNS 에 쿼리를 날림 2. 브라우저는 Http reqeust 메세지를 생성함. 3. OS 내부에 프로토콜 스택에 전송을 의뢰함. 4. 프로토콜 스택은 전기신호로 바꿔서 LAN에 송출함. (제어정보를 붙인 패킷을 LAN 어댑터에 넘김) LAN 어댑터는 전기신호로 변환시켜 케이블로 송출하게 됨. 5. 송신된 패킷은 허브 ,스위치, 라우터를 거쳐서 프로바이더(ISP , 통신사) 에게 전송함 6. 프로바이더는 수많은 엑세스 회선을 통해 POP( 핵심관문이라고생각) -> 인터넷 핵심부에 들어가고 7. 많은 고속 라우터를 사이로 상대 서버로 들어감 ===================================== 서버로 들어옴 ==========================..

TIL 2023.06.02

VARCHAR vs NVARCHAR

varchar는 기본적인 영문 데이터형, 테이블에 설정된 기본 언어 타입을 저장할 때 사용하면 된다. 반면, nvarchar는 유니코드 지원을 위한 데이터형이기에 다국어 지원이 필요한 작업이 필요할 경우 사용하면 된다. char, nchar의 차이도 모두 동일하기에 다국어 지원이 있을 경우 'n'을 붙여 확장 구조를 만들어 두는 것이 좋다. "Apple" varchar : 5byte (1x5) nvarchar : 10byte (2x5) 한글 예제 "과거일지" varchar : 10byte (2x5) nvarchar : 10byte (2x5) 영어 아닐때 -> NVARCHER. 영어 일때는 VARCHAR 이 좋다 ㅇㅇ

TIL 2023.06.01

cherry-pick

캬 말로만 듣던 git 체리픽을 해봤다!! 요약 : 어? 이거 졷댔는데.. 과거로 롤백시켜!! 어? 근데 이 기능은 추가되어야하는데,,, 어떡하지..? 라고 한다면 , 그 기능이 추가될때!! 만 commit을 받아드릴수 있는 기능이 있었다. 주의점 : 체리픽 할 커밋이 여러개라면, 과거부터 천천히 하나하나 체리픽하고, 푸쉬하는 과정을 반복해야한다. +실수로 체리픽 하나 했으면 과거로 돌리려면 git cherry-pick --abort 수행!! 캬 이래서 커밋을 잘하고 버전관리를 잘하라는거구나.. + 스태시로 현재 코드들을 보관할 수도 있다!!

TIL 2023.05.19

JPA delete가 안된다면

1. deleteById 와 delete 차이를 확인하기 2. 정말 잘 들어갔는지 확인하기 1, 2번이 잘 됐다면 3. @Transactional 을 잘 확인하기 4. 그래도 모르겠다면 insert 후 delete를 호출하는건 아닌지 확인하기 내 경험은 하나의 엔티티를 다른 값으로 변경하는건 잘 들어갔는데, delete 문은 적용되지 않았다. -> hibernate에서 동작하는 SQL 순서가 정해져 있기 때문이란다!!!! @Transactional이 있기 때문에 함수 종료시 쿼리문들이 한꺼번에 실행되는데 이때 insert가 먼저 실행되고 delete가 마지막에 실행되기 때문에 delete를 하고 반영을 해준 이후 insert를 수행해줘야 함 -> 필자의 경우 자식 함수에서 delete 문을 수행했기때문에..

TIL 2023.05.18

Request Method OPTIONS란?

F12로 개발자도구를 열어서 확인해보면, 계속 서비스가 2번씩 호출되는것 같아서 보니까, Request Method가 POST거나 GET 이런게 아니고 OPTIONS 인 경우가 있었다. 이게 뭐지? 하고 찾아보니 서버에게 노크를 하는 개념인것 같다. "OPTIONS"는 HTTP 메서드 중 하나로, 클라이언트가 서버에게 자원(예: 웹 페이지, 이미지, 동영상 등)에 대한 특정 작업이 가능한지 또는 허용되는 HTTP 메서드(예: GET, POST, PUT 등)가 무엇인지를 요청하는 메서드입니다. 클라이언트는 OPTIONS 요청을 특정 URL에 보내고, 서버는 이에 대한 응답으로 "Allow" 헤더를 포함한 HTTP 상태 코드 200 OK를 반환합니다. "Allow" 헤더는 해당 자원에서 허용되는 HTTP 메..

TIL 2023.05.10

checked Exception vs unchecked Exception

다른곳에서 동기로 API콜로 get요청을 하는 부분이 있었다. Mono.error 로 에러를 처리했는데, try catch 문으로 둘러쌓아서 에러처리를 해야한댔다. 그런데 그 API콜을 하는 함수는 따로 exception 처리를 안했는데 try catch로 묶을수 있다고?? 하면서 에러처리 과정을 알아봤는데, Mono.error는 runtimeException 은 checked exception이 아니란다. 예전에 공부했는데 까먹었었다. Java의 예외는 2가지로 나뉜다. 1. checked Exception 2. unchecked Exception ( RunTimeException) 1 -> 무조건 예외처리가 되어야함. ( ex : 파일 입출력 , 네트워크 연결 ) 2-> 무조건 예외처리 안해도됨 ( ..

TIL 2023.05.09

@Transactional에 대한 이해

데이터 정합성이 안맞는다.!! 어쩔때만 그렇고 어쩔떈 잘된다.. https://deveric.tistory.com/86 [Spring] 트랜잭션의 전파 설정별 동작 트랜잭션의 전파 설정이란 Spring에서 사용하는 어노테이션 '@Transactional'은 해당 메서드를 하나의 트랜잭션 안에서 진행할 수 있도록 만들어주는 역할을 합니다. 이때 트랜잭션 내부에서 트랜잭 deveric.tistory.com 참고하자 @Transactional을 무지성으로 쓰면 안된다. https://joont92.github.io/db/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EA%B2%A9%EB%A6%AC-%EC%88%98%EC%A4%80-isolation-level/ 이건 공부할게 많아보인다!!..

TIL 2023.05.03

502 에러

오잉 502에러다!! 프록시 또는 게이트웨이 역할을하는 동안 서버는 요청을 처리하는 동안 업스트림 서버로부터 적절한 응답을받지 못했습니다. port번호를 8081인 상태로 올려서 난 에러였다. 1. 발생 원인 게이트웨이, 즉 서로 다른 프로토콜을 연결해주는 장치가 잘못된 프로토콜을 연결하거나, 어느 쪽 프로토콜에 문제가 있어 통신이 제대로 되지 않을 때 출력되는 코드. 주로 서버가 폭주하는 등의 이유로 과부하되었을 경우, 사용자 브라우저에 이상이 있거나 네트워크가 잘못된 연결을 했을 경우 발생한다. 옛날 옛적 리그베다 위키 시절에 심심찮게 보였다 카더라. 주로 서버에 사람이 많아 출력되는 경우가 많기 때문에 사용자 컴퓨터에 이상이 없는 경우가 많으므로, 이 때 해결방법은 서버의 이용자가 많이 사라질 때까..

TIL 2023.05.02