우리 팀이 미니 프로젝트 하던 중 Firebase Database에 이미지 URL을 저장하여 화면에 보여주었으나, 배포 후에 사진이 정상적으로 표시되지 않는 문제를 겪었습니다. 이에 다시 URL을 등록하였으나 문제가 해결되지 않았습니다. 이후 프로젝트 팀 과제 발표회에
가변인자란? 인자의 개수가 변하는 인자를 말한다. 이 가변인자는 타입과 개수가 정해지지 않는다.
추상 클래스란? > 나 이상의 추상 메서드를 포함하고 있는 클래스이다. 추상 메서드는 메서드의 시그니처(이름, 매개변수 및 반환 유형)만을 정의하고 실제 구현은 하위 클래스에서 제공해야 한다. 추상 클래스는 직접 인스턴스화할 수 없으며, 추상 메서드를 구현하지 않은 경
자바에서 스트림은 데이터를 다루는데 사용되는 추상화된 개념이다. 스트림은 데이터 소스로부터 데이터를 읽어들이거나 데이터를 쓰는 작업을 수행할 수 있다. 주로 컬렉션, 배열 또는 파일과 같은 다양한 데이터 소스를 처리할 때 사용된다.자바8에서 소개된 스트림 API는 함수

알고리즘(Algorithm)은 어떤 작업을 수행하기 위해 입력을 받아서 원하는 출력을 만들어내는 과정이다.자료 구조(Data structure)는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다.어떤 자료 구조를 선택
데이터베이스 관리자는 응용 프로그래머가 데이터베이스의 논리적 구조를 정의 하기 위한 언어로 Data Dictionary 에 저장된다.CREATE : 데이터베이스 생성ALTER : 데이터베이스 변경DROP : 데이터베이스 삭제RENAME : 데이터베이스 객체 이름 변경T
switch/case 문은 if문과 비슷하지만 좀 더 일정한 형식이 있는 조건·판단문이다.여기서 case 값 안에 break를 하지 않으면 빠져 나오지 않고 다음 case 문을 실행한다.자바 14부터 개선된 switch 문을 지원하는데 간결하고 가독성이 좋아 보인다.두
Git은 버전 관리 시스템으로, 코드를 추적하고 관리하는 도구이다. 로컬환경에서 작업할 때 사용되며 개발자는 Git을 사용하여 코드의 변경 사항을 추적하고 이전 상태로 롤백하거나 다른 브랜치에 변경 사항을 병합 할 수 있다.git init : 새로운 Git 저장소를 초
다형성은 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나이다. 이는 여러 가지 형태를 가질 수 있는 능력을 의미한다. 자바에서는 다형성을 구현하기 위해 두 가지 주요한 방법을 사용한다.메소드 오버라이딩과 오버로딩이 있다. 서브클래스에서 슈퍼클래스의 메소드를 다시

'String' 클래스의 'matches()' 메서드는 정규 표현식과 문자열을 비교하여 두 문자열이 일치하는지 여부를 확인하는데 사용된다.이렇게 사용을하는데 'a'은 비교하려는 문자열이고 'b'는 비교에서 사용할 정규 표현식이다. matches메서드는 'a'와 'b'가
컬렉션 스트림 > 자바에서 컬렉션 스트림은 자바8에서 소개된 기능 중 하나이다. 이는 컬렉션에 함수형 프로그래밍 스타일의 연산을 수행할 수 있는 기능을 제공한다. 이를 통해 데이터 처리 작업을 더 간결하고 효율적으로 수행 할 수 있다. 컬렉션 스트림의 연산 > 매핑(
this > this 키워드는 현재 객체를 나타낸다. 주로 인스턴스 메서드 내에서 인스턴스 변수와 지역변수를 구별하기 위해 사용된다. this() > 같은 클래스 내의 다른 생성자를 호출하는데 사용한다. 이것은 생성자 오버로딩을 편리하게 처리하는데 도움이 된다. s
자바에서 인터페이스와 추상 클래스는 둘 다 추상화를 구현하는데 사용된다. 여기서 추상화란 객체의 공통적인 특성을 추출하여 정의하는 것을 말한다. 이를 통해 코드의 재사용성과 유지보수성을 향상 시킬 수 있다. 추상 클래스 > 추상 클래스는 하나 이상의 추상 메서드를
API는 소프트웨어 응용 프로그램이 서로 상호 작용하기 위한 인터페이스를 제공하는 도구나 규약이다. API는 서로 다른 소프트웨어 구성 요소 간에 데이터를 교환하고 서비스를 요청하고 제공하기 위한 방법을 정의한다. 이것은 다른 시스템이나 애플리케이션에서 기능을 활용 할
원시형 타입은 단순한 값 자체를 저장한다. 이러한 값은 스택(stack) 메모리에 직접 저장된다.이러한 원시형 타입은 메모리를 효율적으로 사용하며 값의 직접적인 조작이 가능하다.byte : 8비트 부호 있는 정수short : 16비트 부호 있는 정수int : 32비트
MVC는 소프트웨어 디자인 패턴으로 소프트웨어를 세 가지 주요 부분으로 분할하여 개발하는 방법론이다 세 가지 부분은 모델(Model), 뷰(View), 컨트롤러(Controller)로 나뉜다. 각 부분은 특정한 역할을 담당하며 서로 간의 의조선을 최소화하여 융녀하고 재
JackSon >JackSon 은 Java에서 JSON(JavaScript Object Notation) 데이터를 처리하기 위한 강력한 라이브러리이다. 이 라이브러리 JSON 데이터와 Java객체 간의 변환을 쉽게 할 수 있도록 도와주는다. Jackson 주요 기능
자바 표준 API(JPA)는 객체 관계 매핑(Object-Relational Mapping, ORM)을 위한 자바 표준 인터페이스다. JPA는 데이터베이스와 자바 객체 간의 매핑을 쉽게 처리할 수 있도록 도와주는 API이다.JPA에서는 데이터베이스의 테이블을 자바 객체

에서 변경하였다.
https://velog.io/@gun_123/java-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EC%B2%98%EB%A6%AC 참고해서 파일업로드 코드를 작성했다. @Value("${file.upload/path}") p

쿠키는 웹 브라우저에 저장되는 작은 데이터 조각이다. 웹 서버는 클라이언트(브라우저)에게 쿠키를 설정하도록 지시할 수 있으며 이후 요청에서 이 쿠키가 서버로 전송된다.클라이언트 측(사용자의 브라우저)에서 저장된다.쿠키는 설정된 만료 날짜에 따라 지속된다. 세션 쿠키는

인증은 해당 유저가 실제 유저인지 인증하는 개념이다.여러분의 스마트폰에 지문인식, 이용하는 사이트에 로그인 등과 같이 실제 그 유저가 맞는지를 확인하는 절차 이다.인가는 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념이다. 예를 들어 관리자 페이지-관리

오픈API란 누구나 사용할 수 있도록 공개된 API를 말한다. 데이터를 표준화하고 프로그래밍해 외부 소프트웨어 개발자나 사용자가 바로 개발(어프리케이션)에 활용할 수 있는 형태의 개방 형식이다. 개방된 오픈API를 이용해 다양하고 재미있는 서비스나 애플리케이션, 다양한
ava에서 GC는 JVM에 의해 자동으로 관리되며 개발자는 명시적으로 메모리를 해제할 필요가 없다. Java의 GC는 여러 가지 알고리즘과 튜닝 옵션을 제공하여 다양한 애플리케이션 요구 사항을 충족시킨다.동작 방식 : 단일 쓰레드로 GC 작업을 수행한다.장점 : 구현이

mysql 접속하려고하는데 접속이 되지 않는다.제어판 -> 시스템 및 보안 -> 관리도구 -> 서비스 이동mysql80 시작 하고cmd 에서 mysqpl 정상적으로 접속 성공 하였다.
REST(Representational State Transfer) 아키텍처 스타일을 따르는 API(Application Programming Interface)를 말합니다. REST는 웹 서비스의 설계 원칙과 관련된 아키텍처 스타일로, 네트워크 상에서 자원을 정의하고
Relational Database Management Systems (RDBMS)와 NoSQL 데이터베이스는 데이터 저장 및 관리 방식에서 근본적으로 차이가 있습니다. 이 두 가지 유형의 데이터베이스 시스템은 각각 특정한 용도와 상황에 더 적합합니다.RDBMS는 고정
소프트웨어 개발 패러다임 중 하나로, 프로그램을 객체의 집합으로 구성하여 개발하는 방법입니다. 객체는 데이터와 그 데이터를 처리하는 메소드를 포함하며, 이들 객체 간의 상호작용을 통해 프로그램이 동작합니다. 객체 지향 프로그래밍의 주요 개념을 아래와 같이 설명할 수 있
스프링 시큐리티에서 제공하는 클래스입니다. 이 클래스는 사용자의 사용자 이름과 비밀번호를 통해 인증 처리하는 필터로 주로 로그인 요청을 처리하는데 사용합니다.사용자가 로그인 요청을 하면, 이 필터가 요청을 가로채서 사용자 이름과 비밀번호를 추출하고, 이를 이용해 인증을

스프링 프레임워크 기반의 애플리케이션에서 보안 기능을 제공하는 강력하고 포괄적인 보안 프레임워크입니다. 인증(authentication)과 인가(authorization)를 포함하여 다양한 보안 관련 기능을 제공합니다.사용자가 누구인지 확인하는 과정입니다. 일반적으로
HTTP 요청 및 응답을 가로채고 조작할 수 있는 컴포넌트입니다. 이를 통해 특정 요청을 처리하기 전에, 혹은 응답을 클라이언트에게 보내기 전에 필요한 전처리 및 후처리를 수행할 수 있습니다스프링에서 Filter는 주로 다음과 같은 목적으로 사용 된다.사용자의 요청이
데이터베이스의 성능을 향상시키기 위해 사용되는 데이터 구조입니다. 인덱스는 테이블의 특정 열에 대한 빠른 검색을 가능하게 하며, 대규모 데이터셋에서 효율적인 데이터 조회를 지원합니다. 인덱스를 사용하면 테이블의 특정 열에 대한 검색이 훨씬 빨라집니다.인덱스가 있는 열에
@EnableWebSecurity 웹 보안 기능을 활성화MyUserDetailsService는 사용자 정보를 로드하는 서비스로, UserDetailsService 인터페이스를 구현한 클래스configure(AuthenticationManagerBuilder auth)
Refresh Token은 액세스 토큰의 수명을 연장하기 위해 사용되는 토큰입니다. 액세스 토큰은 보통 짧은 수명을 가지고 있어서 만료되면 새로 발급받아야 합니다. 그러나 사용자가 다시 로그인하지 않고도 새로운 액세스 토큰을 발급받을 수 있게 하는 방법이 Refresh
애플리케이션에서 발생하는 예외를 처리하고, 적절한 응답을 반환하기 위해 사용되는 메커니즘입니다. 주로 예외가 발생했을 때 애플리케이션이 비정상적으로 종료되지 않고, 예외 상황을 적절히 처리할 수 있도록 도와줍니다.코드의 여러 부분에서 발생하는 예외를 중앙에서 처리함으로
리베이스(rebase)와 병합(merge)은 둘 다 Git에서 브랜치를 통합하기 위해 사용하는 방법이지만, 그 작동 방식과 결과는 다릅니다.병합은 두 브랜치를 통합할 때 사용됩니다. 병합을 수행하면 두 브랜치의 히스토리를 하나로 합치고, 새로운 커밋이 생성됩니다. 이
OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는 접근 위임을 위한 개방형 표준입니다. 사용자가 애플리케이션에게 모든 권한을 넘기지 않고 사

애플리케이션의 특정 기능을 검증하기 위해 작성된 코드입니다. 단위 테스트는 보통 애플리케이션의 작은 단위, 예를 들어 하나의 메서드나 클래스의 동작을 독립적으로 테스트합니다. 이는 애플리케이션의 특정 기능이 예상대로 동작하는지 확인하는데 유용합니다.자바에서 가장 널리

AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 \` 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. AOP를 활용하면 공통된 기능을 여러 곳에 중복해서 작성하
Git 이슈는 프로젝트에서 발생하는 문제점, 버그, 기능 요청 등을 추적하는 도구입니다. 일반적으로 GitHub, GitLab, Bitbucket 등의 플랫폼에서 제공하는 기능을 사용합니다.이슈를 생성할 때는 명확하고 구체적으로 작성합니다.제목과 본문에 문제점이나 요청
ERD란 > ERD는 데이터베이스의 구조를 시각적으로 표현하는 다이어그램입니다. 데이터베이스 설계의 중요한 도구로, 데이터베이스의 테이블(엔터티)과 그들 간의 관계를 시각적으로 나타냅니다. 이를 통해 데이터 모델을 명확하게 이해하고 설계할 수 있습니다 ERD의 구성
GitHub Milestones는 프로젝트의 특정 목표를 달성하기 위해 관련된 이슈(issue)와 풀 리퀘스트(pull request)를 그룹화하는 데 사용됩니다. 마일스톤은 주로 프로젝트의 중요한 단계나 릴리즈를 추적하는 데 유용합니다.마일스톤을 생성하고, 제목, 설

모놀리식 아키텍처는 위 이미지와 같이 하나의 서버에 모든 도메인이 들어가 있는 형태를 말합니다. 우리가 지금까지 했던 과제들이 모두 이 모놀리식이라고 보시면 됩니다. DB 또한 모든 비니지스 로직이 일반적으로 1대의 DB만 사용합니다.모든 코드가 프로젝트 하나에 위치하
액세스토큰을 10초로 설정되어 있었다. 비밀번호를 맞게 작성했는데 계속 익셉션이 터지길래 한시간 동안 다른 쪽 로그 찍고 막 했는데... 인코딩된 부분을 뒤쪽에 작성 인코딩 안한 부분
1. JPA에서 @ManyToOne 와 @Joincolumn @Column 어노테이션을 사용 해결 > ### @Column 어노테이션은 기본 필드와 함께 사용되며 관계를 나타내는 필드와 함께 사용 하니 에러가 떠서 제거 2. Vaild에서 Long 타입을 @notb
프로그램이 자신의 구조를 분석하고 수정할 수 있는 능력을 말합니다. Java에서는 리플렉션을 통해 실행 중인 클래스의 메서드, 필드, 생성자 등에 접근할 수 있습니다. 이를 통해 컴파일 시간에 알 수 없는 클래스나 인터페이스의 구조에 접근하고 조작할 수 있습니다.모든
Lazy Loading은 연관된 엔티티를 실제로 사용할 때까지 로딩을 지연시키는 방식입니다. 즉, 필요할 때까지 데이터를 가져오지 않고, 연관된 엔티티를 처음 접근할 때 데이터를 로드합니다.초기 로딩 시 불필요한 데이터를 로드하지 않으므로, 성능이 향상될 수 있습니다.
단위 테스트는 소프트웨어의 가장 작은 부분인 "단위"를 테스트하는 것입니다. 여기서 단위는 일반적으로 하나의 메서드, 함수, 클래스 또는 모듈을 의미합니다.개별 구성 요소의 정확성 검증 : 각 단위가 독립적으로 올바르게 작동하는지 확인합니다.버그 조기 발견 : 작은 코
Slice Test는 Spring Framework에서 제공하는 테스트 기법으로 애플리케이션의 특정 계층 또는 모듈만을 독립적으로 테스트하는 것을 목표로 합니다. Slice Test는 주로 특정한 기능을 가진 부분만 테스트하기 위해 애플리케이션의 일부를 "슬라이스" 하
JPA는 자바 애플리케이션에서 관계형 데이터베이스 관리를 위한 표준 명세입니다. JPA는 인터페이스를 제공하며, 실제 구현은 다양한 제공자가 수행합니다.데이터베이스와의 상호 작용을 위한 공통 인터페이스를 정의하여, 다양한 구현체를 사용할 수 있도록 합니다.한 JPA 구
QueryDSL은 타입 안전한 쿼리를 작성하기 위한 Java 라이브러리입니다. 주로 JPA와 함께 사용되며, SQL, JDO, MongoDB 등 다양한 데이터 소스와 함께 사용할 수 있습니다. QueryDSL은 자바 코드로 쿼리를 작성할 수 있도록 지원하여, 동적 쿼리

QueryDSL을 사용할 때 생성되는 JPQL 또는 SQL 쿼리를 최적화하는 것이 중요합니다. 다음과 같은 점을 고려할 수 있습니다:적절한 데이터베이스 인덱스를 추가하여 검색 속도를 개선할 수 있습니다.조인 최적화: 필요한 경우 조인 방법을 검토하여 성능을 향상시킬 수
컨테이너 기반 가상화 플랫폼으로 애플리케이션을 더 쉽게 개발, 배포, 실행할 수 있도록 도와주는 도구이다.도커는 컨테이너 기반 가상화 기술을 사용합니다. 컨테이너는 격리된 환경에서 애플리케이션과 그 종속성을 패키징하고 실행하는 방법을 제공합니다. 각 컨테이너는 호스트의