[우아한테크코스] 5월 28일 TIL

1 minute read

[infra] 배포 관련 질문

  1. 배포를 할 때 bastion, nginx, db 서버를 다 따로 띄우나요?
    인스턴스 중심: 하나의 인스턴스에 역할이 정의되어 있어서 따로 구성하는 것이 맞다. db, bastion은 따로, nginx나 was는 상황에 따라서 다르다.
    서버가 내는 수익 대비 구성을 고려해야 한다.
    정보가 많이 들어있는 DB는 분리하는 편
    pem키도 서버의 사이즈에 따라서, 역할에 따라서 하는 편
    • pem 키 없이 서버에 접속하는 방법 (Elastic Block Storage)
      서브넷
      bastion 방식 다시 이해
      네트워크 강의 문서 다시 보기

* Network

  • 성공과 실패를 결정하는 1%의 네트워크 원리

    * Container

  • 시작하세요! 도커/쿠버네티스

    * Infra

  • 그림으로 공부하는 IT 인프라 구조
  • 사이트 신뢰성 엔지니어링

    * Perforamnce

  • 그림으로 공부하는 시스템 성능 구조
  • 웹 성능 최적화 기법
  • 시스템 성능 분석과 최적화

    * Monitoring

  • 자바 트러블슈팅

    * SQL

  • Real MySQL

[java] 객체의 문자열 기준 정렬하기

  1. stream에서 정렬
    List<TransferLineResponse> lineResponses = linesByStationId.stream()
     .filter(line1 -> !line1.equals(line))
     .map(line1 -> new TransferLineResponse(line1.getId(), line1.getName(), line1.getColor()))
     .sorted(Comparator.comparing(TransferLineResponse::getName)) //이렇게! 역순으로 정렬하고 싶으면 .reversed()
     .collect(Collectors.toList());
    
  2. 객체에서 정렬
    이렇게 하면 name을 기준으로 정렬해주고, 오름차순이나 내림차순을 내가 설정할 수도 있다.
    public class TransferLineResponse implements Comparable<TransferLineResponse> {
     private Long id;
     private String name;
    
     public String getName() {
         return name;
     }
    
     @Override
     public int compareTo(TransferLineResponse o) {
         if(o.getName() < this.getName()) return -1;
         return 1;
     }
    
  3. 또 다른 객체에서 설정
    외부에서 sort(lineResponses, Compartor)로 주어 Comparator에 따라 기준 설정 가능
    public class TransferLineResponseComparator implements Comparator<TransferLineResponse> {
     @Override
     public int compare(TransferLineResponse o1, TransferLineResponse o2) {
         return o1.name.compareTo(o2.name);
     }
    
  4. 리스트 정렬
    Collections.sort(linesByStationId, Comparator.comparing(Line::getName));