얼떨결에 조기축구 팀 운영진? 에 합류하게 되면서 스쿼드를 짤 일이 생겼는데 직접 짜려니까 생각보다 너무 머리아팠다. 그래서 스쿼드빌더를 만들었다. 가장 익숙한 java를 사용했고, 어차피 우리팀만 쓸 거니까 launch4j를 사용해 exe 파일로 만들어서 공유했다. 알고리즘은 1쿼터에는 입력 순으로 원하는 포지션에 배치해준다. 배치할 때 쿼터당 `선호 포지션 배정 : 2점, 비선호 포지션 배정 : 1점 으로 점수를 매겨서 다음 쿼터 짤 때는 점수가 낮은 사람부터 원하는 포지션에 넣어줬다. 그리고 참석율에 따라 배정 쿼터 수를 3쿼터, 2쿼터로 나눴다. (우리 팀의 규칙이다) GUI는 대충 동작만 하면 되기 때문에 gpt한테 맡겼다. 나름 잘 만들어줬다. ㅋㅋ txt 파일로 선수이름, 불참횟수, 선호..
전체 글
^_^😒 일얘기어제는 신규 메세지템플릿 규격에 맞춰서 시험발송 테스트, 오늘은 신규 메세지템플릿 이미지 등록 시 규격에 맞게 리사이징 하는 기능을 개발했다. jpg, gif 확장자에 대해 개발함.
서론최근 tdd 방식으로 사이드프로젝트를 진행중이다.tdd 방식은 시간도 더 걸리고 귀찮지만 이미 테스트코드가 있으니까 리팩터링 시 chat gpt를 적극 활용할 수 있다. 코드를 수정할 때도 테스트 딸깍으로 사이드 이펙트를 확인할 수 있어서 좋다. 또, 실패 테스트 작성 과정에서 예외 처리에 대해 신경쓰게 되어 꼼꼼한 예외처리가 가능해지는 것 같다. 컨트롤러에서 요청값을 받을 때 적용한 예외처리에 대해 간단하게 정리해보고자 한다. Bean Validation @GetMapping("/{encryptedCongressmanId}") public ResponseEntity ratingList( @PathVariable String encryptedCongressmanId, ..
신년맞이+이사기념 데스크세팅을 해보았다. 키보드 : 한성gk993b마우스 : 로지텍lift노트북 Ctype 분배기 : 9만9천원짜리 쿠팡에서구매 회사에서는 mk950 키마세트를 쓰는데 매우 만족중이다. 개인 노트북 업무용 노트북 간 이지스위칭이 엄청 편하다. 몽이는 새 집에 아주 잘 적응했다. 집 평수는 같은데 체감상 더 넓게 느껴져서 몽이도 좋아하는 것 같다.얼마전에 회사 분들한테 몽이 사진을 보여줬는데 다들 귀엽다고 해주셔서 기분이 좋았다 ㅎ.ㅎ
회사에서 L4 스위치 관련해 이슈가 있었는데 관련 지식이 부족해 찾아보던 중 잘 정리된 포스팅이 있어 읽고 간단하게 정리해보았다. L4 스위치란?L4 스위치는 서버 부하 분산=로드빌런싱 을 처리하는 장치다뿐만 아니라 프로토콜(TCP, UDP, HTTP 등)의 헤더를 분석한 정보를 토대로 부하 분산을 실시하고, source ip, destination ip를 NAT 해서 보낼 수 있다.관련 용어L4 스위치는 외부 접속용 공인 IP와 서버와 통신하기 위한 사설 IP를 갖게된다모든 요청은 L4스위치를 통해 서버로 들어오므로, 서버는 공인 ip가 필요없고 사설 ip만 갖는다.외부에서 서버 ip를 알 수 없고 악의적 공격이 제한된다.Virtual ServerL4 스위치의 Virtual Server : 외부에서 ..
컨트롤러 단위 테스트를 작성할 때는 @WebMvcTest 등으로 웹 계층의 빈만 주입받는다.이 때 컨트롤러가 의존하는 객체(서비스 등)는 @MockBean 등으로 만들어준다.mock 객체 stubbing을 해야한다나는 이제까지 mock 객체의 메서드가 호출된다면 stubbing을 해줘야 한다고 생각했다.예를 들어 컨트롤러 단위 테스트 시에 서비스는 stubbing을 통해 정상작동하는 것을 보장해야 컨트롤러에 대해서만 테스트 할 수 있다고 생각했다.@WebMvcTest(MessageController.class)class MessageControllerTest { @Autowired private MockMvc mockMvc; @MockBean private MessageService..
지난 글에 이어서 sql injection과 xxs등 이외 최약 사례에 대해 알아보자. sql injectionsql injection은 db 질의와 관련된 웹 파라미터에 악성 sql을 주입해 db, 서버를 공격하는 것이다. 여러가지 종류가 있는데, 하나씩 확인하며 이해해보자.sql injection 종류error based sql injection웹 페이지 응답 데이터에 dbms error message가 응답될 때 할 수 있는 공격 기법이다. dbms 에러를 유발할 수 있는 입력값을 입력하고 에러 메세지를 통해 정보를 탈취한다. blind sqlsql where 절 조건이 true일때와 false 일 때 응답값 유무를 확인해 취약점을 찾고 추가적인 공격을 통해 데이터를 얻는 방식이다. select *..
https를 사용하면 안전하다고 생각해서 비밀번호 등을 암호화 하지 않는 경우가 있다. 하지만 https를 사용하더라도 중간자 공격에 의해 비밀번호가 탈취될 수 있다. https의 동작 대칭 키와 비대칭 키대칭 키 방식은 하나의 대칭 키로 암호화, 복호화를 하는 것이다.최초 접근 시에 서버가 클라이언트로 대칭 키를 전달해 줘야 하는데 이 때 탈취당할 수 있다.비대칭 키 방식은 서버가 공개 키/개인 키를 갖고 있다가 클라이언트 요청 시 공개키를 주는 방식이다.대칭 키 방식에 비해 성능이 저하된다. ssl을 활용한 https보안성과 성능 두마리 토끼를 잡기 위해 실제로는 두 방식을 섞어서 사용한다. 서버(사이트)는 서버의 공개 키와 사이트 정보를 인증기관에 전달인증기관은 (서버 공개키 + 사이트 정보)를 인..