99클럽 코테 스터디 7일차 TIL +20240728

Yellta·2024년 7월 28일
0

TIL

목록 보기
41/95

오늘의 코테 문제

과제 진행하기
오늘의 코테문제! 오늘은 손으로 뭔가 잘풀렸는데 구현을 고생했다 ㅋ
그리고 java Array로 간단하게 정렬할 수 있는데 괜히 Map으로 바꾸고 그걸 또 어찌저찌 해가지고 힘들게 정렬함 ㅠ

java Array도 잊지말자... (백준 문제집에 정렬을 자바로 풀어보자...)

손으로 문제를 파악한 부분

틀을 짜고 거기로직을 코드로 생각해본 부분

문제에서 헷갈렸던 것

  1. Array정렬을 간단하게 할 수 있었는데 못한것 ㅋ
  2. 시간을 다 쓸때까지 계속계속 업데이트 해줬어야했는데 맨 위에것 하나만 업데이트해서 다 꼬였었던 것 ㅋ

다음엔...더 잘하자...로직은 빨리 짜놓고 코드는 너무 오래 걸린다...

1. 원치 않는 GET요청의 원인

설명

  • 서버를 운영하다보면 원치않는 GET요청을 많이 받을 때가 있다.

원인

자동화된 Scripts & bots

[[웹 크롤러]]/ [[스크레이퍼]]가 무작위로 공격을 요청한다.

[[디도스]]

  • [[분산 시스템]]에서 대량의 요청을 보낸다.

해결 방안

1. 봇 차단

  • robots.txt파일을 이용해 bot차단
  • [[웹 방화벽]]을 사용한다.

2. chapcha사용

3. 로그 분석

  • 비정상 트래픽을 찾아서 차단한다.

4. IP를 차단한다.

  • 특정 아이피를 차단하거나 [[화이트리스트]]를 사용한다.

5. 속도제한

  • 일정시간 내 허용되는 요청의 수를 제한한다.

2. 트랜잭션이란?

설명

  • DB작업을 하나의 단위로 묶어서 처리하는 것

트랜잭션의 상태

  1. Active
    • 트랜잭션 시작
  2. Partially Committed
    • 마지막 연산을 수행한다. 트랜잭션이 종료된 것은 아니다.
  3. Committed
    • 성공적으로 완료되어 DB에 영구적으로 세팅된다.
  4. Failed
    오류가 발생되어 중단된 상태이다.
  5. Aborted
    • 트랜잭션 실패해 모든 변경사항이 취소되고 roll back된다.

트랜잭션의 과정

  1. 실패의 과정
    Active -> Partially Committed -> Failed -> Aborted
    결과는 롤백된다.

  2. 성공의 과정
    Active -> Partially Committed -> Committed

4. 웹 브라우저의 요청과 응답

설명

요청

  • 사용자가 URL요청한다.(링크를 클릭한다.)
    즉 HTTP서버에 요청을 보낸다.

  • 요청에는 HTTP 메서드(GET,POST 등등) 헤더, 본문 등이 표함된다.

응답

  • 서버는 요청을 처리하고 HTTP응답을 브라우저에 보낸다.
  • 응답은 상태코드, 헤더, 본문을 포함한다.

폼을 제출한 후 서버를 바로 종료하면 응답을 받지 못하는 경우가 생길 수도 있다
응답이 완료될 떄 까지 브라우저를 유지해야한다.

5. java ArrayList정렬

설명

코테 문제 풀다가 나온 정렬부분
과제 진행하기


        // 시간 순으로 정렬하기
        Arrays.sort(plans, (a, b) -> {
            int timeA = Integer.parseInt(a[1].replace(":", ""));
            int timeB = Integer.parseInt(b[1].replace(":", ""));
            return Integer.compare(timeA, timeB);
        });

위의 방법도 잊지말고 알아두자...


#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL

profile
Yellta가 BE개발해요! 왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜 가 제일 중요하죠

0개의 댓글