전체 글

Error/Java

[Java] 제네릭 클래스에서 타입 파라미터 누락시 "cannot find symbol" 에러

1. 문제public class ResponseDTO { private List data; // T가 무엇인지 정의되어 있어야 함}위와 같이 작성하니까 에러가 발생한다. 에러 메세지는 'cannot find symbol'인데 왜 발생하는 걸까? 2. 문제 원인자바의 제네릭(Generic) 문법에서 는 타입 파라미터(parameterized type)를 선언하는 것이다. 이 선언은 컴파일러에게 T가 어떤 타입으로 사용될지를 알려주는 역할을 한다. 만약 위와 같이 public class ResponseDTO처럼 를 생략하면, T는 선언되지 않은 정의되지 않은 심볼(symbol) 이 되기 때문에 다음과 같은 에러가 발생한다. 위는 매개변수 없이 함수 내부에서 x를 쓰는 것과 같은 오류라고 한다. 3. ..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/05/12, @PathVariable 사용시, java.lang.IllegalArgumentException 예외 발생

1.문제@RestController@RequestMapping("test") // 리소스public class TestController { // 매개변수를 넘겨받는 방법 @GetMapping("/{id}") public String testControllerWithPathVariables(@PathVariable(required=false)int id) { return "Hello World! ID " + id; }}위와 같이 REST API Controller를 작성하고 요청을 보냈다. 요청은 1. http://localhost:8080/test/12342. http://localhost:8080/test 둘 다 보냈는데, 위는 500에러 아래는 404에러가 발생한다. 첫 번째, 부터 따져보면202..

Error/Java

[Java] 이클립스 Lombok 설치 되었는데도 못 알아 먹을 때, ~ is undefined for the type TodoEntity 오류

1. 문제롬복 설치 후, @Data 에너테이션으로 getter, setter 생성된 것을 Outline으로 확인했는데도,getId() is undefined for the type TodoEntity위 에러가 뜨면서, getId()가 정의되어 있지 않는다고 나온다. 2. 문제 원인Lombok이 제공하는 @Data 어노테이션이 제대로 인식되지 않았기 때문이다. @Data는 자동으로 getId(), getTitle() 같은 getter 메서드를 생성해주지만, Eclipse에서 Lombok 설정이 안 되어 있으면 이 메서드들을 컴파일러가 인식하지 못한다. 인텔리제이만 쓰다가 이클립스 쓰려니까 기억이 가물가물한 것도 있다. 이클립스에서 @Data, @Builder 같은 Lombok 애너테이션을 썼을 때도, 컴파..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/05/07, Gradle Wrapper가 뭘까?

1. Gradle Wrapper가 뭘까?Spring Boot initializer를 이용해서 project를 import할 때, 이 작업을 해야 하는 이유는 우리가 윈도우에 그래들을 설치하지 않았기 때문이다. 대신 Spring Initializr에서 프로젝트를 다운받을 때 gradlew라는 프로그램을 다운 받았는데 gradlew가 바로 그래들 래퍼 Gradle Wrapper다. 따로 그래들을 설치할 필요 없이 또는 이미 설치된 그래들 버전과의 호환 문제 방지를 위해 프로젝트 내의 그래들 래퍼를 사용한다. 위와 같은 이유로 Gradle distribution에서 Gradle wrapper를 선택하라고 했다. https://docs.gradle.org/current/userguide/gradle_wrapp..

Git

[Git] 깃헙 레포지토리 처음부터 다시 구성하는 방법 - 공부한거 밀어버리기

1. 문제공부를 너무 띄엄띄엄 하다 보니까 공부한 내용을 다 잊어버려서 git 레포지토리를 관리를 해야하는데 어떻게 해야 잘 감이오지 않아. gpt 선생님께 여쭤 보았다. 2. 문제 해결 ✅ 1. 기존 레포 그대로 두고 v1, v2 브랜치 분리해서 관리# 현재 상태를 v1으로 분리git checkout -b v1→ 현재 HEAD 상태 그대로 v1이라는 새 브랜치를 만듦→ 새로운 커밋을 생성하지 않음→ 즉, 브랜치 생성 = 커밋 발생 아님git push origin v1 위와 같이 현재 브랜치를 그대로 복제해서 v1에 옮긴다음에 깃헙에 바로 push 한다. git checkout -b는 현재 HEAD 상태 그대로 v1이라는 새 브랜치를 만들기 때문에 커밋 발생이 아니다. 따라서 commit 메세지를 남기지..

JavaScript

[namo CROSSEDITOR] Script인증을 사용할 경우에는 UploadFileExecutePath API를 설정해 주세요.

1. 문제 정의namo CROSSEDITOR의 '그림넣기'를 이용하는데 "Script 인증을 사용할 경우 UploadFileExecutePath API를 설정해 주세요"라는 alert이 뜬다. 이 문장에서 말하는 API는 우리가 보통 생각하는 서버 API(REST API, JSON API)같은 걸 뜻하는게 아니다. 여기서 API란?"파일 업로드 처리를 실제로 실행하는 서버단 프로그램 파일(스크립트)"(예: ImageUpload.jsp, ImageUpload.php, ImageUpload.aspx 이런 것) 즉, UploadFileExecutePath에 지정해주는 서버 경로(URL) 를 "API"라고 부른다. 정확하게 파일 업로드를 처리하는 서버단 스크립트 프로그램을 말한다. 2. 문제 원인https://..

취업

[국비] 한국소프트웨어 산업협회, KOSA 혜화 교육센터 Q&A(질문 위주로)

https://strolrol.tistory.com/111 [국비] 한국소프트웨어 산업협회, KOSA 혜화 교육센터 후기 및 회고록(개발자 국비지원 한 번 더)1. 한국소프트웨어 산업협회 들어가기 전2024년 6월 17일 2시쯤에 비대면으로 면접을 봤었다. 그 당시 내 상태는 K-digital 교육을 중도 포기해서 더 이상 국비 지원은 불가능했다. 또 이전 국비 교육strolrol.tistory.com한국소프트웨어 산업협회 후기 및 회고록을 올렸는데 생각보다 조회수가 잘나온다. 아무래도 요즘 취업시장이 너무 힘들기도 하고 교육에 관심이 많아서 그런게 아닐까 생각해본다. 지금 작성하는 글은 한국소프트웨어 산업협회 교육 질문 중 가장 많이 받았던 것 위주로 Q&A를 작성해보려고 한다. 만약 이 글이 처음이라..

일상

20250330 온유약국 비맥스 메타정, 애크논 크림 가격

가격만 적으라 이말이야! 2025년 03월 30일 기준임,​비맥스 메타정 120정 - 35,000원애크논 크림 13g - 10,000원파티마겔 크림 30g - 6,000원아로나민 골드 300정 - 79,000원 온유약국, 보령약국, 비맥스 메타정, 비맥스, 애크논 크림, 애크논겔, 여드름약, 파티마겔, 벤작AC, 아로나민, 아로나민 골드, 종로5가, 종로5가 약국, 약국, 약 가격, 비맥스 가격, 애크논 가격, 애크논 크림 가격, 종로 약국

카테고리 없음

무향 고보습 세타필 세라마이드 로션(체험단)

"본 후기는 브랜드로부터 제품을 제공받아솔직하게 작성된 리뷰입니다."  세타필 세라마이드 로션의 제조사는 갈더마라는 피부과 전문 제약회사입니다. 1981년에 설립된 스위스 본사 기업으로, 피부 연고를 많이 사용해보셨다면 한 번쯤 들어봤을 그 갈더마 맞습니다.   향수사랑에서 향이 없는 세타필 체험단이라니 살짝 띠용할 수 있는데요. 위 설명처럼 향수를 뿌리는 부위에 먼저 로션을 바르고 그 위에 향수를 뿌리면 된다고 하더라고요. 향이 없는 로션이라 많은 분들이 선호하시는데, 오히려 향을 더욱 오래 지속시켜준다는 점이 참 인상적입니다.  택배가 도착하자마자 바로 뜯어봤는데, 체험단인데도 본품을 제공해 주다니 놀랍네요.   로션 뒷면을 보면 FRAGRANCE FREE 문구가 보이시나요? 민감한 피부를 가진 분들..

JavaScript

[JavaScript] 커링(Currying) 이란? const fn = x => y => x + y;

1. 함수 구조const fn = x => y => x + y;const fn = function(x) { return function(y) { return x + y; };};위는 커링(Currying) 기법을 사용한 함수 표현식이다. 커링은 여러 개의 인수를 받는 함수를 하나의 인수를 받는 함수들의 연속으로 변환하는 기법이다.2. 동작 원리fn 함수는 첫 번째 인수 x를 받아서, 또 다른 함수를 반환한다.반환된 함수는 두 번째 인수 y를 받아서 x + y를 계산하고 결과를 반환한다.3. 사용 예시const add5 = fn(5); // x에 5를 넣음console.log(add5(3)); // y에 3을 넣음 -> 5 + 3 = 8console.log(fn(2)(4)); // ..

돌맹이떼굴떼굴
떼굴떼굴개발자