분류 전체보기122 query dsl 파일 중복생성, 파일을 찾지 못하는오류 Attempt to recreate a file for type 어제까지는 잘 빌드되던 게 갑자기 빌드되지 않는 문제가 발생했습니다. 같은 파일 생성 오류인 것 같아 그래들에서 clean을 진행하여 파일을 제거하여 봤습니다. Could not find class file for 하지만 이번에는 파일을 제거 후에 다시 빌드하여 파일이 생성되었지만 찾지 못하는 오류가 발생 gradle other에서 complie을 해도 똑같은 오류가 발생합니다. 제가 해결한 방법 맥 기준 : intelliJ->setting -> build tools -> gradle : gradle -> intellj로 변경하였습니다. ( 빌드 환경 변경) 그리고 queryDsl 생성파일을 제거하거나, gradle에서 clean 후에 co.. Spring,SpringBoot 2023. 5. 6. [백준 java] 소가 길을 건너간 이유 14466 🔗 문제링크 🔗 14466번: 소가 길을 건너간 이유 6 첫 줄에 N, K, R이 주어진다. 다음 R줄에는 한 줄에 하나씩 길이 주어진다. 길은 상하좌우로 인접한 두 목초지를 잇고, r c r′ c′의 형태 (행, 열, 행, 열)로 주어진다. 각 수는 1 이상 N 이하이다. www.acmicpc.net 🌟 생각 흐름 🌟 먼저 가지 못하는 길을 저장해야 한다고 생각했습니다. 만약 리스트 형태로 저장하게 된다면 탐색에 너무 많은 시간이 걸리고 map의 사이즈가 100*100이므로 배열의 형태로 저장하는 것이 이득이라 생각하였습니다. 문제는 길의 startx, starty, endx, endy 형태로 주어지기 때문에 어느방향으로 길이 있는지 저장해야 합니다. 따라서 direction 방향에 따라 확인해보면서 .. 알고리즘/백준 2023. 5. 5. Clean Code(1,2 장) 1장 중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화하라 이상이다. 2장 : 메서드 네이밍 의도를 분명히 밝혀라 그릇된 정보를 피하라 의미 있게 구분하라 발음하기 쉬운 이름을 사용하라 검색하기 쉬운 이름을 사용하라. 인코딩을 피하라 헝가리식 표기법 PhoneNumber phoneString → String에서 변경되었지만 변경사항을 수정하기 어렵다. —> 지금을 사용하지 않는 것이 좋다 멤버 변수 접두어 private String m_dsc // 설명문자열 (접두어 이제는 필요 없음) 인터 페이스 클래스와 구현 클래스 인터페이스 이름은 접두어를 붙이지 않는 편이 좋다고 생각했다. 자신의 기억력을 자랑하지 마라 클래스 이름 : 객체 이름이나 명사구 메서드 이름 : 동사나 동사구 기발한 .. 책 리뷰/클린코드 2023. 5. 4. code up 기초 100문제 풀이 (JAVA) 1001 문제 링크 : [🔗🔗code up 문제 #1001] 문제 풀이 : [🔗🔗code up 풀이 #1001 ] 1002 문제 링크 : [🔗🔗code up 문제 #1002] 문제 풀이 : [🔗🔗code up 풀이 #1002 ] 1003 문제 링크 : [🔗🔗code up 문제 #1003] 문제 풀이 : [🔗🔗code up 풀이 #1003 ] 1004 문제 링크 : [🔗🔗code up 문제 #1004] 문제 풀이 : [🔗🔗code up 풀이 #1004 ] 1005 문제 링크 : [🔗🔗code up 문제 #1005] 문제 풀이 : [🔗🔗code up 풀이 #1005 ] 1007 문제 링크 : [🔗🔗code up 문제 #1007] 문제 풀이 : [🔗🔗code up 풀이 #1007 ] 1008 문제 링크 : [.. 알고리즘/코드업 2023. 5. 4. [백준 1939] 중량제한, 크루스칼 풀이 🔗 문제링크 🔗 1939번: 중량제한 첫째 줄에 N, M(1 ≤ M ≤ 100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1 ≤ A, B ≤ N), C(1 ≤ C ≤ 1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 www.acmicpc.net 🌟 생각 흐름 🌟 기존의 크루스칼 문제에서는 최단 경로를 계산하기 위해서 최단 경로를 기준으로 정렬을 하였다 하지만 해당 문제에서는 다리를 건널 때 가장 많이 적재할 수 있는 양을 물어보는 것이므로 가장 높은 값을 기준으로 정렬한다(내림차순) 만약 시작 지점과 끝지점이 한사이클안에 있다고 판단되는 순간 현재 적재량을 싫고 나를 수 있다는 소리이므로 멈추고 리턴한다. -- 이진탐색을 이용한.. 알고리즘/백준 2023. 5. 4. mock mvc 테스트시 본문의 값이랑 비교하는 방법, 테스트 코드에러, 연관관계 메서드 제거 1번 삽질(mock mvc에서 Http 메서드를 잘못 작성) 삽질시에 참고한 글(근데 해당 문제가 아니었다) [1번글] [2번글] 약 한 시간 버린 실수였다 mock mvc를 이용하여 테스팅을 하는데 swagger로 할 때는 값이 나왔다. 그래서 단일 값에 대한 json으로 값이 들어와야만 비교 가능한 줄 알고 싱글톤 객체로도 보내봤다. -> 그래도 안 되는 문제 그래서 결론적인 문제는? mock mvc의 HTTP Method를 잘못 적었다. 조회(Get)를 해야 하는데 삭제(Delete) 메서드를 호출했다는 것 이상하다 싶으면 내 코드를 먼저 봐야겠다 아 그래도 배운 점 1개 ResponseBody에 단일값, 응답 본문내용 자체를 비교하고 싶은 경우에 content(). string(원하는 string.. Spring,SpringBoot 2023. 5. 2. Test 코드로 인해서 생성되는 파일 관리(자바의 파일 삭제) 수정 전 코드 @Test public void 유저객체생성확인() throws Exception { //이름에 넘길 파라미터 네임 MockMultipartFile file = new MockMultipartFile("profileImg", "image.jpg", "image/jpeg", "".getBytes(StandardCharsets.UTF_8)); MemberRequestDto userMakeDto = new MemberRequestDto("password", "loginId", "nick", "bo@google.com", file); //when mockMvc.perform(multipart("/auth/signup") .file(file) .param("password", userMakeDto... Spring,SpringBoot 2023. 5. 1. DTO 변환과정 convert 패턴으로 처리 틀린 부분 조언 해주시면 감사하겠습니다 😄 기존코드 기존에는 컨트롤러 내에서 DTO로 변경하는 메서드를 이용해서 변경 후에 리턴하도록 코드를 구성하였었다. 하지만 다른 개발자 분들의 코드들을 찾아보다 보니 객체 내에서 toConvert라는 메서드를 구성하여 리턴하는 방식을 사용한다는 것을 알게 되었다. 생각해 보니 기존에 컨트롤러 내에서 메서드로 변환하는 방식은 해당 컨트롤러에서만 사용하는 방식이고 만약 다른 코드에서 사용하려 하면 또 메서드를 선언해야 하여 코드 중복이 발생하고, 객체 지향적이지 않은 코드라는 생각이 들었다. 따라서 코드를 아래와 같이 convert 메서드를 객체 내에 두어서 객체 지향적이고 코드의 중복을 줄일 수 있는 방법으로 수정하였다. 수정 코드 고민 1. convert 클래스를 .. Spring,SpringBoot 2023. 4. 30. [백준 Java] 1253 좋다 🔗 문제링크 🔗 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 🌟 1번 풀이 ❯❯ 해시를 이용한 풀이 🌟 그냥 해시만 이용해도 풀리긴 한다 (꽤나 비효율적인 방법으로) 해당 방법에서 체크할 포인트는 0인경우에 대한 반례 체크이다. 0 0 0과 같은 경우 '0' 3개가 모두 만들어질 수 있다. (더해도 값을 유지한다) 🍳 코드(시간이 더 오래 걸리는 코드) 🍳 package 백준.hash; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre.. 알고리즘 2023. 4. 29. [백준 Java]1105_팔_greedy(실버1) 🔗 문제링크 🔗 1953번: 팀배분 첫줄에는 청팀의 사람의 수를 출력하고, 그리고 둘째 줄에는 청팀에 속한 사람들을 오름차순으로 나열한다. 그리고 셋째 줄과 넷째 줄은 위와 같은 방법으로 백팀에 속한 인원의 수, 백팀에 속 www.acmicpc.net 🌟 생각 흐름 🌟 이 문제 완탐으로 해도 풀린다(0인 경우 바로 리턴하도록 하는 경우, 시간은 아주 별로로 나오지만) 처음에는 완탐으로 풀고 그리디 힌트를 얻어 그리디 방법을 생각해 봤다. 뭔가 숫자로 조합하는 느낌 이어서 푸는데 꽤나 신경쓸게 많은 구현 느낌이었다 1280 1281 -> 1개 , 숫자가 같은 경우 넘어가지만 숫자를 체크하지 않는다. 이후에 값이 다른 경우에만 브레이크 한다. 8756 12345 -> 길이가 다른 경우 비교하지 않아도 된다... 알고리즘 2023. 4. 28. 📚 객체지향의 사실과 오해(FIN) (책의 내용 중 일부분과 개인적으로 요약한 부분이 같이 있어 저자분의 내용과 다르게 요약되었을 수 있습니다.) 1장 "협력하는 객체들의 공동체" 객체 지향의 목표는 실세계를 모방하는 것이 아니다. 오히려 새로운 세계를 창조하는 것이다. 소프트웨어 개발자의 역할은 단순히 실세계를 소프트웨어 안으로 옮겨 담는 것이 아니라 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것이다. 역할, 책임, 협력 역할이라는 단어는 책임이라는 개념을 내포한다. 역할에 적합한 책임을 수행한다 - 여러 사람이 동일한 역할을 수행할 수 있다 ( 여러 명의 바리스타, 여러 명의 손님 ) - 역할은 대체 가능성을 의미한다. (일하고 있던 바리스타가 일을 그만두어도 다른 사람으로 대체 가능하다) - 책임을 수행하는 방법은 자율적으로.. 책 리뷰/객체지향의 사실과 오해 2023. 4. 28. JVM의 동작 방식과 메모리 구조 1. JVM의 동작 순서 1. 자바를 실행 시키면 자바 컴파일러에 의해 자바(. java) 파일이 클래스 파일(. class)로 컴파일된다. 2. 이후에 클래스 로더에 .class 파일(바이트 코드)을 로드한다. - 이 과정에서 클래스 파일은 메모리에 저장되고 파일 정보가 JVM내부에 유지된다. 3. class loder를 통해 JVM Runtime Data Area(메모리 영역)을 구성한다. (메소드 영역, 힙영역, 스택영역) -> 아래에 나오지만 간단하게 설명하면 - 1. 메소드 영역 : 클래스 수준의 정보(클래스 이름, 부모 클래스 이름, 메소드, 변수) - 2. 힙 영역 :객체, 배열이 생성되는 영역 (new 생성자로 생성되는) - 3. 스택 영역 : 각 스레드 마나 하나씩 존재, 메소드 호출 시.. JAVA 2023. 4. 26. 이전 1 2 3 4 5 6 7 ··· 11 다음