본문 바로가기

전체 글343

Spring 이미지 업로드 (파일생성, 난수, 경로 설정) ✔ 이미지 저장, 경로, 파일이름 // 이미지 저장, 경로, 파일이름private String saveImage(MultipartFile image, String storagePath, String filename, String type) { try { String savePath = UPLOAD_DIRECTOR_STRING + storagePath; File storageDirectory = new File(savePath); if(!storageDirectory.exists()) { storageDirectory.mkdirs(); // 파일 경로가 없는 경우 디렉토리를 생성 } File imageFile = new File(storageD.. 2023. 6. 17.
Spring 이미지 업로드 API 설계 ✔ 이미지 업로드 API (ServiceImpl) - 기본 틀 (이미지가 없는 경우) @Override public JsonElement uploadImageImageVO image) { StopWatch watch = getStopWatch(); MultiValueMap params = new LinkedMultiValueMap(); try { if (image.getImage() == null) { return JsonParser.parseString(new Gson().toJson(new ResponseWithMessageVO(ApiCommonCode.ILLEGAL_PARAMETER, "이미지는 필수 항목입니다."))); } - 파일 형식 지정해주기 (조건) // 업로드된 이미지 파일 가져오기 Mu.. 2023. 5. 26.
신입 메모1 @PostConstruct 의존성 주입이 이루어진 후 초기화를 수행하며 bean이 여러번 초기화되는 것을막는다. @Slf4j -> slf4j-api 로깅 프레임 워크에 대한 추상화 역할을 하는 라이브러리 @RequiredArgsConstructor lombok으로 스프링에서 의존성 주입 방법 중 생성자 주입이 임의의 코드없이 자동으로 설정 초기화 되지 않은 final, @NonNull이 붙은 필드에 생성자를 생성하고 새로운 필드 추가할 때 다시 생성자를 만들어 관리해야 하는 번거로움이 없다. 유저 IP를 가져왔을 때 IPv6문제 ,IP4로 전환 springboot나 Tomcat의 run as -> run configuration -> 해당하는 곳으로 들어가 -> arguments -> VM argumen.. 2023. 5. 23.
신입 환경설정 오류 신입사원의 하루동안 오류와 배운점 - 리눅스 사용경험 cp, cd...... a java runtime environment(jre) or java development kit(jdk) must be a available in order to run - 오류 발생의 경우는 다른 사람의 파일을 그냥 받아오는 경우 eclips.ini나 sts.ini 같은 파일에 jdk, jre 파일의 경로가 문제가 발생하는 경우이다. 내 피시의 환경설정을 확인하여 동일하게 바꾸자 vm 하단부와 같은곳에 비슷한 상황으로 Maven update간 오류가 발생하는 경우 pom.xml만 다른곳에서 복사하는 경우 많은 오류가 발생했다. pom.xml의 parent 하단부에 artificated, name 등이 네 프로젝트 이름과 동.. 2023. 5. 21.
SpringBoot 메세지 발송/조회 API 설계 2 (Entity, DB, Controller, Service, POSTMAN) ✔ Entiry, DB 이 코드는 lombok 어노테이션을 사용하여 자동으로 생성되는 생성자, 게터, 세터 등을 포함하는 Java 클래스입니다. •@Data: @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 어노테이션을 포함하는 대표적인 롬복 어노테이션입니다. 이 어노테이션을 사용하면 클래스에서 필요한 메소드들을 자동으로 생성해줍니다. •@Builder: 객체를 생성하면서 값들을 설정하는데 사용되는 빌더 패턴을 쉽게 사용할 수 있도록 도와주는 롬복 어노테이션입니다. •@AllArgsConstructor: 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성하는 롬복 어노테이션입니다. •@NoArgsConstructor:.. 2023. 5. 19.
SpringBoot 메세지 발송/조회 API 설계 1 (요구사항, 사용기술, application.properties, Log4j) ✔ 프로젝트 요구사항과 필요성 ✔ Maven 사용기술 부연설명 - •log4j-core는 로깅 프레임워크의 구현입니다. 로거 생성 및 관리, 로그 이벤트 처리, 적절한 어펜더에 로그 메시지 발송과 같은 로깅의 핵심 기능을 제공합니다. 또한 다른 대상에 로그를 작성하는 데 사용할 수 있는 구성 가능한 추가기 세트를 제공합니다. •log4j-api는 개발자가 로깅 프레임워크와 상호 작용하는 데 사용하는 API입니다. 개발자가 로거를 만들고 메시지를 기록하고 로깅 시스템을 구성하는 데 사용하는 로깅 인터페이스와 클래스를 제공합니다. 타사 라이브러리에서도 사용하도록 설계되어 Log4j 로깅 시스템과 통합할 수 있습니다. ✔ application.properties 부연설명 - 1.여기에서는 테스트 서버접속과, .. 2023. 5. 18.
Java 음성 소켓 통신(서버, 클라이언트) 기초 ✔ Server import java.io.*; import java.net.*; import javax.sound.sampled.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try { // 서버 소켓 생성 serverSocket = new ServerSocket(12345); System.out.println("서버가 12345번 포트에서 연결 요청을 기다리고 있습니다..."); // 클라이언트 연결 대기 Socket clientSocket = serverSocket.accept(); System.out.println("클라이언트가 접속.. 2023. 4. 21.
코딩테스트 - 파이썬 - 스티커 수집 문제 def solution(sticker): n = len(sticker) if n 2023. 4. 20.
코딩테스트 - 파이썬 - 상자 채우기 def solution(n): if n == 0: return 0 box_5 = n // 5 # 5kg 무게의 상자 개수를 최대한 많이 채우는 경우를 계산하여 box_5에 저장 while box_5 >= 0: # box_5 값이 0 이상인 동안 반복 remaining = n - (5 * box_5) # 남은 무게를 계산하여 remaining에 저장 if remaining % 3 == 0: # 남은 무게가 3의 배수인 경우, 3kg 무게의 상자로 채울 수 있음 box_3 = remaining // 3 # 3kg 무게의 상자 개수를 계산하여 box_3에 저장 return box_5 + box_3 # 5kg과 3kg 무게의 상자 개수를 합하여 반환 box_5 -= 1 # 가능한 경우가 없는 경우, box_5 .. 2023. 4. 19.