분류 전체보기302 [SpringBoot] 시큐리티 설정, 로그인 성공 처리 방법 @Configurationpublic class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeRequests(authorizeRequests -> authorizeRequests.anyRequest().authenticated() ) .formLogin(formLogin -> formLogin.successHandler(loginSuccessHand.. Coding 공부/IntelliJ 2024. 6. 18. [javaScript_Web] 파일 시스템 경로 접근 불가 해결 방법 파일 시스템 경로 (D:/upload/) 는 브라우저에서 직접 접근 불가! 🙅♀️🙅♂️ (보안 문제!)혹시 이미지를 불러올 때 처럼 로컬 파일 시스템 경로를 사용했는데 이미지가 안 나온다면? 🤔 당황하지 마세요! 이건 보안상의 이유로 브라우저가 직접 파일 시스템에 접근하는 걸 막기 때문이랍니다. 😅 왜 안될까요? 만약 웹 페이지에서 아무 파일이나 마음대로 읽어올 수 있다면, 개인 정보 유출 등 심각한 보안 문제가 발생할 수 있어요! 😱 그래서 브라우저는 로컬 파일 경로를 통한 접근을 제한하고 있답니다.어떻게 해결하죠? 정답은 웹 서버를 통한 파일 제공! ✨ Flask 웹 서버 예제 코드 (Python): from flask import Flask, send_from_directoryapp .. Coding 공부/JavaScript 2024. 6. 18. [SpringBoot] @ControllerAdvice, @ModelAttribute("member")로 세션 속 멤버 정보를 전달하기 스프링 MVC 꿀팁🍯: @ControllerAdvice와 @ModelAttribute("member")로 세션 속 멤버 정보를 모든 뷰에 쏙! 넣어주기 😎혹시 매번 컨트롤러에서 세션에 저장된 멤버 정보를 가져와 모델에 추가하는 작업이 귀찮다고 느끼신 적 없나요? 그렇다면 오늘 알려드릴 꿀팁으로 개발 생산성을 높여보세요! 🚀 @ControllerAdvice란 무엇인가요? 🤔컨트롤러를 위한 조언자: 스프링 MVC에서 여러 컨트롤러에 공통적인 처리 로직을 적용할 때 사용하는 강력한 도구입니다.전역적인 문제 해결사: 예외 처리, 모델 속성 추가 등 다양한 작업을 중앙에서 관리하여 코드 중복을 줄이고 유지보수를 쉽게 만들어 줍니다.@ModelAttribute("member")의 마법 ✨모든 뷰에 멤버 정보.. Coding 공부/IntelliJ 2024. 6. 17. [SpringBoot] Entity와 DTO를 ModelMapper로 쉽게 변환하기 영양 진단 결과를 DTO로 깔끔하게 변환! ✨ resultMapper 활용법 🧐개발하다 보면 영양 진단 결과 데이터를 이리저리 가공해야 할 때가 있죠? 🤔 이때, resultMapper가 등장하면 삶의 질이 수직 상승합니다! 🚀resultMapper는 왜 쓸까요? 🤓데이터 주고받기 편하게: 복잡한 NutritionDiagnosisResult 객체를 좀 더 가볍고 간편한 NutritionDiagnosisResultDTO 형태로 변환해 줍니다. 마치 택배 상자를 포장하는 것과 같죠! 🎁코드 재사용성 UP!: 매번 변환 로직을 작성할 필요 없이, resultMapper를 여러 곳에서 재사용하여 개발 시간을 단축할 수 있습니다. ⏰유지 보수 걱정 끝!: 변환 로직이 변경되더라도 resultMapper만.. Coding 공부/IntelliJ 2024. 6. 17. [Java] 인터페이스 디폴트 메서드 Java 8의 혁신, 인터페이스 디폴트 메서드: 확장성과 하위 호환성을 위한 해결책Java 8 이전에는 인터페이스에 새로운 메서드를 추가하면 해당 인터페이스를 구현한 모든 클래스를 수정해야 하는 번거로움이 있었습니다. 하지만 Java 8부터 도입된 **디폴트 메서드(Default Method)**는 이러한 문제를 해결하고 인터페이스 확장에 대한 유연성을 제공합니다. 이번 포스팅에서는 디폴트 메서드의 개념, 장점, 활용 방법, 그리고 주의할 점을 살펴보겠습니다.디폴트 메서드란?디폴트 메서드는 인터페이스 내에서 default 키워드를 사용하여 선언하고, 구현까지 함께 제공하는 메서드입니다. 이를 통해 인터페이스를 구현하는 클래스는 디폴트 메서드를 별도로 구현하지 않아도 사용할 수 있습니다.디폴트 메서드의 장.. Coding 공부/Java 2024. 6. 16. [SpringBoot_JPA] Entity 지연 로딩 JPA Entity 지연 로딩: 성능 최적화를 위한 필수 전략 지연 로딩이란?JPA(Java Persistence API)에서 **지연 로딩(Lazy Loading)**은 연관된 엔티티를 실제로 사용할 때까지 데이터베이스 조회를 미루는 전략입니다. 즉, 필요한 시점에만 연관 엔티티를 로딩하여 불필요한 데이터베이스 접근을 줄이고 성능을 향상시킵니다.즉시 로딩과의 비교특징즉시 로딩 (EAGER)지연 로딩 (LAZY)로딩 시점엔티티 조회 시 연관 엔티티를 즉시 함께 로딩연관 엔티티를 실제로 사용하는 시점에 로딩성능연관 엔티티가 항상 필요한 경우 유리연관 엔티티를 선택적으로 사용하는 경우 유리쿼리JOIN 쿼리를 사용하여 연관 엔티티를 한 번에 조회필요한 시점에 추가적인 쿼리를 실행하여 연관 엔티티를 조회주의 사.. Coding 공부/Java 2024. 6. 15. [ThymeleaThymeleaf Layout Dialect : 웹 페이지 레이아웃 Thymeleaf Layout Dialect로 웹 페이지 레이아웃 깔끔하게 관리하기 ✨웹 개발에서 레이아웃 관리는 필수죠! 매번 페이지마다 헤더, 푸터, CSS, JS 파일을 복붙하는 건 너무 귀찮잖아요. 😫 Thymeleaf의 Layout Dialect를 사용하면 이런 반복 작업을 줄이고 깔끔하고 효율적인 레이아웃 관리를 할 수 있습니다. 👍1. Thymeleaf Layout Dialect란? 📚Thymeleaf Layout Dialect는 Thymeleaf 템플릿 엔진의 확장 기능으로, 웹 페이지의 공통 레이아웃을 정의하고 재사용할 수 있도록 도와줍니다. 즉, 헤더, 푸터, 메뉴 등 자주 사용되는 요소들을 한 곳에 모아 관리하고, 각 페이지에서는 콘텐츠 부분만 작성하면 됩니다. 덕분에 코드 중복.. Coding 공부/HTML+CSS 2024. 6. 13. [Java_JavaScript] 자바스크립트 .then()과 자바 .forEach() 메서드 자바스크립트 .then()과 자바 .forEach() 메서드 완벽 정복! ✨자바스크립트의 비동기 처리와 자바의 컬렉션 순회는 개발에서 빼놓을 수 없는 중요한 개념이죠! 🤔 오늘은 자바스크립트의 .then() 메서드와 자바의 .forEach() 메서드에 대해 알아보면서 비동기 처리와 컬렉션 다루는 방법을 마스터해 봅시다. 💪1. 자바스크립트 .then(): 비동기 처리의 꽃 🌸자바스크립트는 단일 스레드 언어이기 때문에, 시간이 오래 걸리는 작업(예: 네트워크 요청, 파일 읽기)을 처리할 때 비동기 방식을 사용합니다. Promise는 이러한 비동기 작업을 깔끔하게 처리할 수 있도록 도와주는 객체이며, .then() 메서드는 Promise가 성공적으로 완료되었을 때 실행할 콜백 함수를 등록하는 역할을 합.. Coding 공부/Java 2024. 6. 13. [JavaScript] 구조 분해 할당 ✨ 자바스크립트 구조 분해 할당으로 함수 매개변수 깔끔하게 받기! 🧙♂️혹시 함수에 매개변수 여러 개 넘길 때마다 괄호 안에 쉼표 폭탄💣 투척하고 계신가요? 이젠 그런 걱정은 그만! 자바스크립트 **구조 분해 할당(Destructuring Assignment)**으로 함수 매개변수를 깔끔하게 받아보세요. 😎 구조 분해 할당이란?객체나 배열의 속성을 변수에 바로 할당하는 문법입니다. 마치 선물 상자🎁를 열어 내용물을 각각의 자리에 쏙쏙 넣는 것처럼, 복잡한 데이터 구조에서 필요한 값만 쏙쏙 뽑아낼 수 있어요! // ... (생략)uploadToServer(formObj).then(result => { // ... (생략) for (const uploadResult of result) {.. Coding 공부/JavaScript 2024. 6. 13. [SpringBoot_JPA] 엔티티 어노테이션 @OneToMany, @Builder.Default, @BatchSize JPA 엔티티에서 이미지 관리를 위한 어노테이션 3종 세트 뽀개기 💥JPA(Java Persistence API)를 사용하여 데이터베이스와 객체를 매핑할 때, 관계 설정은 빼놓을 수 없는 중요한 부분입니다. 특히 이미지처럼 여러 개의 파일을 하나의 게시글과 연결해야 할 때는 @OneToMany, @Builder.Default, @BatchSize 어노테이션 조합이 강력한 도구가 될 수 있습니다. 😎1. @OneToMany: 일대다 관계 매핑의 핵심 🗝️역할: 하나의 게시글 엔티티(Board)가 여러 개의 이미지 엔티티(BoardImage)를 가질 수 있는 일대다 관계를 설정합니다.mappedBy 속성: 관계의 주인이 어떤 엔티티인지 명시합니다. 여기서는 BoardImage 엔티티의 board 필드가.. Coding 공부/IntelliJ 2024. 6. 13. [Java] Arrays.asList() Java Arrays.asList() 메서드: 배열을 리스트로 변환하는 강력한 도구Java 개발을 하다 보면 배열(Array)과 리스트(List)를 서로 변환해야 하는 경우가 종종 발생합니다. 이때 Arrays.asList() 메서드는 간편하고 효율적인 해결책을 제공합니다. 이번 포스팅에서는 Arrays.asList() 메서드의 기능, 장점, 주의할 점, 그리고 활용 예시를 살펴보겠습니다.Arrays.asList()란?Arrays.asList()는 java.util.Arrays 클래스에 정의된 정적 메서드로, 주어진 배열을 리스트로 변환하여 반환합니다. 이 메서드는 배열과 컬렉션 간의 상호 운용성을 높여주는 다리 역할을 합니다.주요 특징고정 크기 리스트: Arrays.asList()가 반환하는 리스트는 .. Coding 공부/Java 2024. 6. 13. [Springboot_MariaDB_thymleaf] 웹페이지에서 이미지 업로드, DB에 저장, 이미지 다운로드 @Controller // Spring MVC 컨트롤러임을 나타내는 어노테이션public class FileController { @Autowired // FileService 의존성 자동 주입 private FileService fileService; @GetMapping("/") // 루트 경로("/")에 대한 GET 요청 처리 public String index(Model model) { // 모든 파일 목록 조회하여 모델에 추가 List files = fileService.getAllFiles(); model.addAttribute("files", files); // index 템플릿 렌더링 return "in.. 프로젝트/Springboot_MariaDB 2024. 6. 13. 이전 1 ··· 9 10 11 12 13 14 15 ··· 26 다음 728x90 반응형