본문 바로가기

Java22

[AWS S3] S3에 업로드한 이미지가 열리지 않고 다운로드 될 때 이슈 사이드 프로젝트를 진행 중에 S3, Cloudfront를 연결해서 이미지를 업로드하는 작업을 진행 중인데, 업로드한 이미지가 열리지 않고 다운로드되는 문제가 발생했다. 해결법 - Content-Type이 설정되지 않아서 발생하는 문제라고 한다. 사실 S3에서 직접 확인해볼 때 유형 png로 제대로 뜨는데 머가 문제인지 정확히 모르겠음ㅠㅠ 아무튼, 나는 Content-Type만 설정해줬는데도 바로 해결이 됐는데, 그래도 안된다면 Content-Disposition까지 inline으로 설정해보면 될 것 같다. PutObjectRequest putObjectRequest = PutObjectRequest.builder() .bucket(bucket) .key(uploadPath) .contentType(.. 2022. 6. 3.
[Java/Postgresql] 랜덤 문자열 생성 - get_random_string() Java나 DB에서 Primary key나 Unique key와 같은 곳에 사용하기 위해 종종 Random String이 필요한 경우가 있다. 길이를 입력하면 숫자, 알파벳 대소문자를 포함하는 랜덤 문자열을 반환하는 함수를 생성하는 방법을 정리해 본다. 아래 코드를 응용하면 특수문자 등 랜덤 스트링을 구성하는 문자들의 커스텀이 가능하다. Java public String getRandomCode(int length) { // alphaNum에 특수문자를 추가하여 커스텀이 가능하다. String alphaNum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; int alphaNumLength = alphaNum.length(); Ra.. 2022. 3. 21.
[Java] equals()와 ==의 차이점(feat: String str=""와 new String("")의 차이점) 날이면 날마다 헷갈리는 eqauls()와 ==의 차이.. 다시는 헷갈리지 않기 위해 정리 한 번 하고 간다 자바에서는 String 타입을 비교하기 위해 equals()와 == 두 가지 연산자를 사용한다. 결론부터 말하자면 둘의 차이점은 '내용을 비교하는가' vs '주소를 비교하는가' 이다. 자세하게 살펴보기 위해 먼저 Java에서 String 객체의 생성 방법을 먼저 살펴보아야 한다. 자바 String객체 생성 : String str=""와 String str = new String("")의 차이 자바에서 String 객체를 생성하는 방법은 두 가지이다. String str="" 와 String str = new String("") 이 둘의 차이점은 무엇일까? 자바에서 String 객체는 Immutabl.. 2022. 2. 3.
[Project] Naver SmartEditor 2.0으로 게시판만들기 - 1. 에디터 적용 다시 생각해도 힘든 기억이 떠오르는 네이버 스마트 에디터 적용기... 개발하면서 이것만큼은 무조건 블로그에 정리하겠다고 다짐했다. 프로젝트를 마치고 이제서야 겨우 정리할 시간이 생겨 남겨본다. 단 한명일지라도 나처럼 헤메는 누군가에게 꼭 도움이 되길 바라며....... 회사에서 진행하고 있는 프로젝트에서 간단한 게시글 작성하기 기능을 새로 구현하는데 기존 서비스들에서 사용하고 있는 다음에디터가 서비스를 종료하면서 네이버 에디터를 사용하기로 하였다. 처음 기획에서는 에디터도 없고 간단하다고 생각해서 M/M을 굉장히 짧게 잡아주셨는데 기획이 제대로 나오고나서 '생각보다 큰데?' 라고 하셨다.. 초보개발자였던 나에게는 꽤 험난한 산이었다. DB 테이블 설계 + 스마트에디터 + 첨부파일 + 게시판 노출 타겟설정.. 2021. 11. 4.
[Java] Generic이란? Generic class Class field 가져오기, 동적 메소드 실행 Java에서 Generic이 무엇인지와 이를 이용하여 여러 객체에 공통적으로 들어가는 항목에 대해서 반드시 초기화가 필요할 경우 setter 메소드를 이용하여 초기화 시키는 방법을 알아보려고 한다. 프로젝트에서 사용했던 방법을 이용하여 간단한 예제를 만들어보았다. 서비스에서 데이터 삭제를 요청할 때 실제로 중요한 데이터는 바로 삭제하지 않고 delete 여부 컬럼을 따로 둬서 true/false로 설정하곤 하는데, 이 경우 매번 초기화를 시켜주기 번거롭고 각 객체마다 따로 함수를 설정하는건 비효율적이다. 이런 경우 Generic 을 이용하여 임의의 객체의 필드에 접근하고 대해 동적 메소드를 호출할 수 있다. ​ 1. Generic이란? Generic이란? 클래스에서 사용할 타입을 외부에서 선언하는 것을 .. 2021. 10. 1.
[Java] String, StringBuilder, StringBuffer의 차이 자바에서 String과 StringBuilder, StringBuffer의 차이는 매우 중요하고 면접에서 자주 물어보는 단골 질문이다. 이번 포스팅에서는 셋의 차이와 각자의 특징에 대해 알아보려고 한다. String vs StringBuilder, StringBuffer String과 StringBuilder, StringBuffer의 가장 큰 차이는 값이 변경되는지, 변경되지 않는지의 여부이다. 각 객체를 수정하였을 때 실제 메모리에 어떤 변화가 있는지를 확인하면 쉽게 이해할 수 있다. 실제로 String, StringBuffer, StringBuilder가 메모리에 저장되는 방식 우선 자바에서 객체가 저장되는 방식은 위와 같다. String str = "sujinhope"에서 변수 str 은 스택에 .. 2021. 9. 12.
[Java] Java11의 특징(Feat. Java9, Java10) 이번 포스팅은 Java11의 특징. 즉, Java8 이후 Java11 까지의 대략적인 변화에 대해 정리해두었다. Java8의 특징을 알고 싶다면 이전 포스트에 정리해두었다. [Java] Java8의 특징 1. 함수형 인터페이스, Stream API, Lambda 목차 함수형 인터페이스 Stream API Lambda 참고 링크 그동안은 알고리즘이나 프로젝트를 진행할 때 Java8을 사용해 오다가 이번에 회사에서 Java11을 이용해 프로젝트를 진행하게 되었다. Java8과 Java11 beforb.tistory.com 목차 GC의 변화 - G1 GC(Garbage First GC) 도커 컨테이너의 향상된 기능 다중 릴리즈 - jar files 기타 버전별 업데이트(Java9, Java10, Java11).. 2021. 9. 6.
[Java] Java8의 특징 1. 함수형 인터페이스, Stream API, Lambda 목차 함수형 인터페이스 Stream API Lambda 참고 링크 그동안은 알고리즘이나 프로젝트를 진행할 때 Java8을 사용해 오다가 이번에 회사에서 Java11을 이용해 프로젝트를 진행하게 되었다. Java8과 Java11은 특히 변화와 특징이 많아 그동안 기술 면접에서도 종종 질문이 들어왔던 이슈인데, 이번 기회에 정리해보려고 한다. Java11의 특징은 다음 포스트에 정리해 두었다. ​ 1. 함수형 인터페이스(Functional Interface) Java8의 핵심은 함수형 프로그래밍을 지원한다는 것이다. 함수형 인터페이스를 위해서는 함수형 프로그래밍에 대해 먼저 알아야 하는데, 함수형 프로그래밍에 대해서는 좀 더 자세히 정리하고 싶어서 여기서는 간단히만 정리하고 따로 포스팅을 할 예정이다. 간단.. 2021. 8. 30.
[Java] 클래스 변수와 인스턴스 변수의 차이(static 변수와 non-static 변수) 목차 클래스 변수, 인스턴스 변수 클래스 변수, 인스턴스 변수, 지역 변수가 메모리에 적재되는 위치 클래스 변수(Static)의 주의점, 클래스 변수가 필요한 이유 ​ 클래스 변수, 인스턴스 변수 클래스 변수(Static 멤버) 클래스 내에 Static 키워드로 선언된 변수 처음 JVM이 실행되어 클래스가 메모리에 올라갈 때 ~ 프로그램이 종료될 때까지 유지 클래스가 여러 번 생성되어도 Static 변수는 처음 딱 한 번만 생성됨 동일한 클래스의 모든 객체들에 의해서 공유됨 인스턴스 변수(Non-static 멤버) 클래스 내에 선언된 변수 객체 생성 시마다 매번 새로운 변수가 생성됨 클래스 변수와 달리 공유되지 않음 아래 예제에서 StaticTest 인스턴스를 두 개 생성한 후 staticTest1의 클.. 2021. 8. 25.
반응형