본문 바로가기
TIL

[TIL] 0628(화)

by 희구리 2022. 6. 28.

IT

SQL 오류 [ORA-01427]

  • 주로 서브쿼리에서 1건을 초과한 레코드가 나올 때 발생하는 에러
  • 오류를 해결하기 위해 오류가 발생한 서브쿼리를 찾아야 함(하위 서브쿼리로 이동하며 오류나는 쿼리 찾기)
  • 문제의 원인인 서브쿼리 결과가 1건을 초과하지 않도록 쿼리 수정


TMI) 쿼리의 FROM절이 데이터의 이력을 관리하는 뷰를 사용하여 동일한 펀드가 서브쿼리에서 두 번 잡혀 오류가 발생했었음


로드 밸런싱(Load Balancing)

웹 사용이 늘어감에 따라 1대의 서버로 모든 트래픽을 감당하기엔 턱없이 부족하다.
대응 방안으로 하드웨어의 성능을 올리거나(Scale-up) 여러대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있다.
하드웨어 성능 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out이 좀 더 효과적이다. 이 때 여러 서버에게 균등하게 트래픽을 분산시키는 것이 바로 로드 밸런싱이다.

  • 둘 이상의 CPU 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것
  • 분산식 웹 서비스로 여러 서버에 부하(Load)를 나누어 주는 역할
  • 클라이언트와 서버 사이에 Load Balancer를 두고 부하가 일어나지 않도록 여러 서버에 분산시킴
  • 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서로 관리하여 웹 서버 부하해결 가능

로드 밸런서가 서버를 선택하는 방식은 아래와 같다.

  • 라운드 로빈(Round Robin) : CPU 스케줄링의 라운드 로빈 방식 활용
  • Least Connections : 연결 개수가 가장 적은 서버 선택(트래픽으로 인해 세션이 길어지는 경우 권장함)
  • Source : 사용자 IP를 해싱하여 분배(특정 사용자가 항상 같은 서버로 연결되는 것을 보장해줌)


서버를 분배하는 로드 밸런서의 장애를 대비하기 위해 상태를 이중화한다.

  • Active 상태
  • Passive 상태


참고 : https://github.com/gyoogle/tech-interview-for-developer

'TIL' 카테고리의 다른 글

[TIL] 0627(월)  (0) 2022.06.28
[TIL] 0623(목)  (0) 2022.06.23
[TIL] 0622(수)  (0) 2022.06.22

댓글