분류 전체보기692 [백준][C++] 16120번: PPAP (266) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/16120 16120번: PPAP 첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다. www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 입력이 1,000,000까지라 O(NlogN), O(N) 안에 해결해야겠다는 생각부터 들었다. 그런데 경험상 이런 문자열 처리는 대부분 O(N)에 처리하는 문제였기에, 문자열을 처음부터 끝까지 한 번만 탐색해서 처리하는 방식을 생각하게 되었다. 문제는 이해만 하면.. Algorithm/백준 2023. 3. 21. [RabbitMQ] RabbitMQ 기본 개념 1. RabbitMQ의 기능과 장점 오픈소스 Pivotal의 소프트웨어이며, Mozilla Public 라이선스로 배포되고 있다. erlang으로 작성된 RabbitMQ는 오픈소스의 유연함에 안정성까지 갖췄다고 한다. 플랫폼과 업체 중립성 AMPQ(Advanced Message Queuing Protocol)스펙을 구현한 메시지 브로커 이다. 경량성 관리자 UI플러그인과 함께 코어 애플리케이션을 구동하는데 40MB 미만의 메모리만 사용한다. 이후에 Queue에 메시지 양이 증가하면 메모리 사용량이 증가하게 된다. 다양항 클라이언트 라이브러리 RabbitMQ는 다양한 언어와 운영체제, 환경에서 서로 데이터를 공유할 수 있는 유용한 다리 역할을 한다. 유연한 성능과 안정성 절충 제어 안정적인 메시지 전달과 .. BackEnd/RabbitMQ 2023. 3. 12. [쿠링] QueryDsl을 활용한 키워드 검색 쿼리 구현 개인적으로 작업하고 있는 프로젝트에서 검색쿼리를 리팩토링 해야 하는 상황이 발생하였다. 우선 이전 방식의 코드를 살펴본 후, 이를 리팩토링 해 나가는 과정을 남겨보자! 1. 리팩토링 전의 코드 우선 keywords를 전달받아 처리하는 이전의 코드는 다음과 같다. ▶ NoticeServce.handleSearchRequest() public List handleSearchRequest(String keywords) { keywords = keywords.trim(); String[] splitedKeywords = keywords.split("[\\s+]"); // 키워드 중 공지 카테고리가 있다면, 이를 영문으로 변환 for (int i = 0; i < splitedKeywords.length; ++i).. BackEnd/쿠링 2023. 3. 7. [자료구조] The Halting Problem (정지 문제) 해당 본문은 학교수업시간에 배운 강의내용을 기반으로 정리하는 요약글 입니다. 정확하지 않은 점이 있으면 지적해주시면 감사하겠습니다. 1. Halting Problem이란? 어떤 프로그램이 어떠한 입력값을 받았을 때 종료되는지 아닌지를 돌려보기 "전에" 알 수 있는가? 당연히 프로그램을 돌려봐서 끝난다면 끝난다는 것 을 알수 있지만, 우리는 프로그램을 돌리기 전에 먼저 알고싶다! 코드를 작성하다보면 컴파일에러도 잡아주고, 문법에러도 잡아준다, 어찌 저찌 잘 해보면 실행전에 종료되는지의 유무를 알수 있지 않을까? 1 - 1) 문제의 목적 세상엔 컴퓨터로 풀기 쉬운 문제가 있고, 풀기 어려운 문제가 있다. 그런데 세상엔 컴퓨터로 풀 수 없는 문제도 있다. 정지 문제는 컴퓨터로 풀 수 없는 문제들 중 하나이다... CS/Data Structure (2021-1) 2023. 3. 5. [Nexters] 22기 7주차 후기 1. 넥버닝 하는날 7주차는 오전부터 저녁까지 팀원이 함께 긴 시간동안 작업을 하는 날 이었다. 원래 예전 기수에서는 아예 밤을 샜다고 하는데... 우리 기수에서는 밤까지 새지는 않았다! 하루 종일 팀원들과 작업하였으며, 중간에 넥스터즈 측에서 피자를 제공하여 점심으로 맛있게 먹었다! 하지만~! 우리팀은 따로 방을 잡아서 밤을 세기로 하였다!! 이때까지만 해도 간만에 밤을 세는것에 대한 두려움이 있었다.... 혹여 기절하는것은 아닐까??..... 그렇게 고려대 근처의 "파티룸 오다"를 대여하여 밤을 불태우러 갔다!! 1 - 2) 금강산도 식후경~ 일단 가볍게 야식 먹어주고 시작하는게 국룰~ 맥주가 보이신다구요?? 맥주가 아니라 보리물 입니다 ㅇㅇ 1 - 3) 이쁜 작업공간! 대여한 공간이 시각적으로 이뻐.. Life/Nexters 2023. 3. 2. [Nexters] 22기 6주차 후기 1. 유일한 온라인 세션 6주 차는 유일하게 온라인으로 초청된 연사분들의 발표를 듣는 시간이었다! 디자이너팀과 개발자 팀이 분리되어 따로 발표세션이 진행되었다. 당연히 나는 개발자 세션에서 발표를 듣게 되었다. 1 - 1) Supabase 나는 supabase를 처음 알게 되었으며, 프론트를 주로 하시는 분들이 이런 UI가 좋은 DB를 사용하는 것 도 생산성에 많은 장점이 있겠다고 생각했다. 또한 supabase를 통해 쿼리를 작성하는 코드가, 마치 Java진영의 QueryDsl 문법과 유사하다 생각하여 배우기 수월할 것 같다는 생각이 들었다. 발표 연사께서도 이번 프로젝트를 시작하면서 적용했었다고 해주셨다. 다만 실무에서 적용은 못해보셨다 하셔서, 어디까지 커버가 가능할지는 미지수인점이 아쉽다. 1 -.. Life/Nexters 2023. 3. 2. [RestAssured] Multiparts 테스트 작성시 Json데이터와 File을 함께 보내기 (Cannot serialize because cannot determine how to serialize content-type multipart/form-data) 1. 문제의 상황 이번 문제는 기존의 Json만 전달하면 RestAssured 테스트 코드에서 multiparts를 전달하다 보니 발생한 문제였다. 우선 다음과 같이 (Json데이터 + multipart form data)를 함께 보내려 한다. 이를 받는 컨트롤러는 다음과 같다. @PostMapping("/api/sessions") public ResponseEntity createNewSession( @RequestPart @Valid SessionRequest request, @RequestPart List files) { SessionDto session = toDto(request); long currentGenerationId = generationService.getActiveGeneratio.. BackEnd/TDD 2023. 2. 28. [JPA] Unable to find column with logical name: child_name in org.hibernate.mapping.Table and its related supertables and secondary tables 1. 문제의 상황 RoleHierarchy라는 Entity에서 필드로 String childName을 가지고 있다. 또한 내가 알기로는 Spring이 알아서 저장할 때 camel case로 변환하여 저장해 주는 것으로 알고 있다. 하지만 다음과 같이 childName이라는 column을 찾을 수 없다는 오류에 직면하게 되었다. 이러한 문제가 발생한 이유는 바로 부모를 참조할 때 referencedColumnName으로 "child_name"을 지정해 줬기 때문이다. 원래는 referencedColumnName을 지정하지 않고, default로 설정하는 부모의 id값을 기본으로 사용하겠지만, 나의 코드에서는 Role의 이름이면 충분히 구별할 수 있었기 때문에 id를 저장할 필요가 없었다. (id가 1인 R.. BackEnd/JPA 2023. 2. 16. [백준][Python] 10282번: 해킹 (265) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/10282 10282번: 해킹 최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 문제는 다익스트라를 알면 금방 해결할 수 있는 문제이다. 문제는 다익스트라인 것을 어떤 부분에서 눈치챌 수 있을까? 사실 문제만 읽으면 최단경로를 구해야 한다는 점이 명확하게 보이지 않을 수 있다(적어도 나는 그랬다.. Algorithm/백준 2023. 2. 14. [백준][C++] 18808번: 스티커 붙이기 (264) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이게 생각보다 쉬운것 같으면서 약간 구현이 빡신 문제이다. 애당초 생각을 많이 하기보다는, 문제 그대로 구현만 계속 하면 되는 문제이다. 배열의 크기도 최대 40*40 이라 brute force 방식으로 해결하면 된다 .. Algorithm/백준 2023. 2. 13. [백준][C++] 6987번: 월드컵 (263) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/6987 6987번: 월드컵 월드컵 조별 최종 예선에서는 6개국으로 구성된 각 조별로 동일한 조에 소속된 국가들과 한 번씩, 각 국가별로 총 5번의 경기를 치른다. 조별리그가 끝난 후, 기자가 보내온 각 나라의 승, 무승부 www.acmicpc.net 1. 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 사실 보자마자 떠오른 방식은, 모든 팀은 게임을 할때마다 3가지 경우(승리, 비김, 패배)중 하나의 경우가 나온다 생각하였다. 또한 6개팀이 승부하는 경우의 수는 15가지 이다. A: {B, C, D, E, F} B.. Algorithm/백준 2023. 2. 9. [Spring Security] SecurityConfig와 UserDetailsService에서 순환참조 문제 (Error creating bean with name 'securityConfig': Requested bean is currently in creation: Is there an unresolvable circular reference?) 1. 문제의 상황 우선 Custom한 AuthenticationProvider를 구현하던 도중, 구현의 편의를 위해 @Autowired로 필요한 의존성들을 끌어다 사용 중 이었다. 또한 정상적으로 실행되고 있었다. 기능이 구현된 후에 단지 의존성 주입방식을 생성자 주입 방식으로 변경 테스트를 수행했는데 다음과 같은 에러가 발생하였다! SecurityConfig memberDetailsService(UserDetailsService) 간에 순환 참조 문제가 발생하게 된 것 이다! 우선 문제가 되고 있는 코드를 살펴보자! ▶ LoginAuthenticationProvider @RequiredArgsConstructor public class LoginAuthenticationProvider implement.. BackEnd/Spring Security 2023. 2. 8. 이전 1 2 3 4 5 6 7 8 ··· 58 다음