✅ Framework? 프레임워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다. (나무 위키) 왜 사용합니까? 1. 실력이 부족한 진형준도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다. 2. 어느 정도 품질면에서 성과가 있는 결과물을 얻을수 있다. 3. 개발 시간을 단축할 수 있다. Spring(Java의 웹 프레임워크), Django(Python의 웹 프레임워크), Flask(Python의 마이크로 웹 프레임워크), Ruby on rails(Ruby의 웹 프레임워크), .NET Framework, Node.js(Express.js 프레임워크) 등 ✅ Spring의 본질 자바의 가장 큰 특징은 객체 ..
3개월 전 모기업에 인턴을 지원하게 되었는데 운이 좋아 최종 면접까지 봤습니다. 준비가 정말 부족하다는 느낌을 많이 받았고 back-end 개발자 db관련 면접 질문을 조금이라도 보고 갔다면 좋았을걸..... 알아야 할게 많지만 제가 느끼기에 중요한 트랜잭션과 Isolation Level에 대해 정리를 해보겠습니다. 트랜잭션이란? 위키 백과에는 다음과 같이 나와있다. 정리 database의 데이터를 조작하는 작업의 단위 사용자는 트랜잭션을 통해 데이터베이스에 안정성과 신뢰성을 얻을 수 있다. 명령을(연산) 끝 마칠 때까지 수행 내역을 로그에 저장 (redo, udno log) ❗ ACID Atomicity(원자성) : 트랜잭션의 연산은 데이터 베이스에 모두 반영되던지 둘 중 하나이다. Rollback :..
처음엔 이동거리가 최댄 줄 알고 시간 좀 잡아먹었다. 문제 잘 읽기..... 문제 해결 방안 - 원웅이 (행, 0)부터 검사해준다 (오른쪽, 오른쪽 대각, 오른쪽 위) - 재귀를 돌릴 때 방문한 위치는 건물을 세운다 ex) map [x][y] ='x' 이렇게 해도 되고 boolean [][] visit =true로 바꾼다 - 오른쪽 오른쪽 대각, 오른쪽 위 수식을 세워준다. - 빵집 즉 마지막 열에 닿으면 이건 파이프가 연결되었다는 뜻이다. - 더 이상 조건 건물이 있거나 방문한 점이라서 갈 곳이 없으면 이건 파이프가 연결되지 못한다는 뜻이다. - 그림으로 표현하면 이와 같이 되는 거 같다. - 마지막 행 (4,0) 을 보게 되면 다 방문했어서 갈때가 없다. import java.io.BufferedRe..
Autoboxing : 기본형 -> 참조형 으로 바뀜 Wrapper 클래스의 객체로 변환하는 것 Integer a = 100; // Integer는 래퍼클래스 오토박싱이 일어나면서 new Integer(100)수행 Unboxing : 참조형 -> 기본형 Wrapper 유형의 객체를 해당 기본 값으로 변환 하는 것 Integer a = new Integer(100); int test = a; //unboxing Integer a값을 primitive 변수이 int test에 대입하면 알아서 언박싱되면서 처리 자바는 int, long, boolean 같은 변수의 기본 자료형(Primitive Type)을 제공한다. 하지만 이런 기본자료형은 컬렉션(Collection)이나 제네릭(Generic)에서 제한적으로..
들어가기 앞서.... 이 글은 제가 프로젝트를 생성할 때 필요한 것들을 정리하기 위해 작성한 거라서 도움이 안 될 수도 있습니다... 보통 프로젝트를 생성하고 빌드하는 과정까지 설명이 있는데 이 글은 없습니다 ㅎㅎ ● 개발환경 IntelliJ 2019.02 Java 8 SpringBoot 2.5.7 Gradle ● 라이브러리 JPA Lombok Spring Boot DevTools H2 Database 아래 사이트에서 설정 https://start.spring.io/ Generate click IntelliJ로 프로젝트를 만들어도 좋지만 전 여기서 만드는 게 더 편해서 start.sping.io 사이트에서 진행하겠습니다. 프로젝트 폴더 안으로 가서 intellij를 실행시키세요!! 실행 후 Build S..
SpringBoot 프로젝트에 적용하면서 알고 넘어가야 하는 Lombock 어노테이션에 대해 확실히 정리를 하려고 글을 작성해요 롬복(Lombock) 왜 쓸까? 롬복에 대해 정리를 하자면 Java에서 반복적으로 작성되는 equals, hashCode, toString , getter/setter 메서드 ex) getName , setName 등 만들어주게 되는데 생성자 관련 코드를 간결하게 만들어주는 라이브러리!!! , 사실 인텔리 제이나 이클립스 등 IDE를 사용하면 getter, setter 메서드를 쉽게 구현할 수 있다. (자동 생성이 가능하다는 의미) 이래서 필요성을 못 느꼈었다 더 좋다 롬복이... 가장 큰 이유는 유지 보수 시에 큰 도움이 된다. 필요한 클래스의 필드에 따라 일일이 getter..
두달 전에 파일 업로드 부분에 대해서 간단하게 구현을 했었는데 이번에는 조금 더 발전한 코드와 쇼핑몰 프로젝트에서 CRUD 중 C 부분에 대해서 정리하는 시간을 가지려고 해요. 쇼핑몰 프로젝트를 진행하면서 상품을 생성하는데에 있어서 Image 업로드 부분이 많이 오래 걸렸었던거 같아요ㅠㅠ 처음에는 멍청하게 Java collection을 사용하지 않고 이미지갯수를 딱 지정해놓고 imageurl1 ,imageurl2, imageurl3, 이런식으로 작성했었는데 조금 더 클린코드 조금 더 좋은 코드를 위해서 코드의 질을 높였달까? 글이 좀 긴 점 이해바랍니다!! SpringBoot 프로젝트 구조 Controller @PostMapping public ResponseEntity registerProduct(@R..
쇼핑몰 프로젝트를 하게 되어서 다중 이미지 업로드를 구현하려고 글을 작성해보려고요 별도의 form은 구현하지 않았고 Postman 으로 test를 진행해볼게용 ㅎㅎ 만약 form을 구현하여 요청을 보내신다면 이런 식으로 작성해 주시면 좋을 거 같아요 application.properties 에 코드 추가 multipart.maxFileSiz=1MB multipart.maxRequestSize=1MB 최대 용량을 설정하실 때 적당히 크기를 설정해 주시면 ( ex) multipart.maxFileSiz=1000MB multipart.maxRequestSize=1000MB) 아래와 같은 에러가 발생하지 않습니다!! multipart.MaxUploadSizeExceededException: Maximum upl..