기록중

이상 현상(Anomaly)

이상현상 데이터베이스에서 정규화를 수행하지 않으면, 데이터의 중복이 발생하고 전체적인 무결성이 저하됩니다. 이러한 원인은 데이터 이상 현상(Anomaly)에 의해 발생하며, 이상 현상으로 인해   현실세계의 실제 값과 데이터베이스에 저장된 값이 일치하지 않는 문제가 발생합니다. 이상현상 종류 삽입이상 특정 데이터가 존재하지 않아 중요한 데이...

포트번호

포트번호란?? 포트 번호는 컴퓨터 네트워크에서 서비스 또는 프로세스를 식별하는 번호입니다. TCP/IP 프로토콜을 사용하는 네트워크에서 각 서비스나 프로세스는 특정 포트 번호에 할당됩니다 특정 프로그램이 ‘포트 번호’를 사용하게 됩니다. ⭢ 프로그램 하나가 포트 번호 하나만 사용할 수 있다. 다시 말해, 하나의 포트는 하나의 프로세스만 사용 가...

정규화

정규화 데이터베이스 설계에서 중복을 최소화하고 데이터의 무결성을 유지하기 위한 프로세스입니다. 주로 관계형 데이터베이스에서 사용되며 데이터의 불필요한 중복을 제거하여 데이터의 일관성을 유지하고 데이터베이스 구조를 최적화합니다. 제 1정규화 제 1정규화란, 하나의 속성에 하나의 값을 가지도록 하는 과정입니다. 제 1정규화 전 각 과목(...

JavaScript 변수

변수란? 데이터를 담아두는 공간이며 프로그램에서 사용되는 데이터를 일정 기간 동안 기억하여 필요한 때에 다시 사용하기 위해 데이터에 고유의 이름인 식별자를 명시한 것입니다. 식별자 : 어떤 대상을 유일하게 식별할 수 있는 이름 변수명 : 변수에 명시한 고유한 식별자 변수값 : 변수로 참조할 수 있는 데이터 값 변수 선언 주의점 변수 이...

Java는 Call by Reference? Call by Value?

Call by Value (값에 의한 호출) 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시 공간이 생성됩니다. 함수 호출시 인자로 전달되는 변수의 값을 복사하여 함수의 인자로 전달합니다. 복사된 인자는 함수 안에서 지역적으로 사용되는 local value의 특성을 가집니다. 따라서 함수 안에서 인자의 값이 변경되어도, 외...

추상화

추상화란? 추상화는 클래스들의공통적인 요소를 뽑아서 상위 클래스를 만들어내는 것입니다. 반드시 상위 클래스일 필요는 없어서, 공통적인 속성과 기능을 정의한 하위 클래스를 생성할 수도 있습니다. 추상화는 공통적인 속성과 기능을 정의함으로써 코드의 중복을 줄이고, 클래스 간 관계를 효과적으로 설정하고, 유지/보수를 용이하게 하는 것입니다. 자바...

운영체제

운영체제란? 프로그램 실행에 마땅히 필요한 요소들을 가리켜 시스템 자원, 혹은 줄여서 자원이라고 합니다. CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품들은 모두 자원이라고 볼 수 있습니다. 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이 바로 운영체제(operating sy...

형변환

타입 변환 (Type Conversion) 하나의 타입을 다른 타입으로 바꾸는 것을 타입 변환 혹은 형변환 이라고 합니다. 프로그램에서 값의 대입이나 연산을 수행할 때는 같은 타입끼리만 가능합니다. 메모리에 할당받은 바이트의 크기가 상대적으로 작은 타입에서 큰 타입으로의 타입 변환은 생략할 수 있습다. 메모리에 할당받은 바이트의 크기가 큰 타입...

스프링 컨테이너

스프링 컨테이너(Spring Container)공식문서 스프링 컨테이너는 스프링 프레임워크의 핵심 컴포넌트이다. 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공한다. 스프링에서는 자바 객체를 빈(Bean)이라 한다. 즉, 스프링 컨테이너는 내부에 존재하는 빈의 생명주기를 관리(빈의 생성, 관리,...

인스턴스❓

인스턴스란? EC2는 컴퓨터를 한 대 빌리는 것이므로 컴퓨터로 할 수 있는 모든 일을 할 수 있습니다. 아마존이 전 세계에 만들어 놓은 데이터 센터(인프라)에 만들어져 있기 때문에 컴퓨터를 조작하기 위해 네트워크(인터넷)를 통해서 컴퓨터를 제어해야 한다는 차이점이 있을 뿐 일반적인 컴퓨터와 다른 점은 없습니다. 아마존 EC2를 통해서 할 수...

탐욕(Greedy) 알고리즘

그리디알고리즘이란? 단순 무식하게, 현재 상황에서 최선의 선택만을 하는 알고리즘이다. 그리디 알고리즘은 매 순간 최선의 선택만을 하므로,이후의 상황에 대해서는 전혀 고려하지 않는다 그리디 알고리즘은 모든 상황을 고려하는 것이 아니기 때문에 시간을 크게 절약할 수 있다. 그리디 알고리즘의 조건 그리디 알고리즘을 사용하기 위해서는 크게 2가지...

추상 클래스와 인터페이스

추상클래스 미완성 설계도라고 할 수 있습니다. 왜냐하면 미완성 메서드(추상메서드)를 포함하고 있기 때문입니다. 추상클래스로 인스턴스를 생성할 수 없습니다.(미완성이기 때문) 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있습니다. 클래스 선엄부에 abstract를 붙이면 추상클래스가 됩니다. abstract class 클래스 이...

시간복잡도

시간복잡도란? 효율적인 방법을 고민한다는 것 효율적인 알고리즘이란 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘을 구성 주어진 문제를 해결하기 위한 연산 횟수 일반적으로 수행시간은 1억번의 연산을 1초의 시간으로 간주하여 예측 시간 복잡도는 주로 빅-오 표기법을 사용해 나타낸다. 시간 복잡도 유형 Big-Ω(빅-오메가): ...

클래스와 객체

클래스는 객체를 생성하는 데 사용되는 설계도이며, 객체는 클래스를 기반으로 생성된 실체입니다. 클래스는 객체를 생성하는 데 사용되는 설계도입니다. 클래스는 속성(멤버 변수)과 동작(메서드)으로 구성됩니다. 클래스는 객체가 가져야 할 속성과 행동을 정의합니다. 객체는 클래스를 기반으로 생성된 실체입니다. 객체는 클래스에서 정의한 멤버 변수와...

메서드 오버라이딩과 메서드 오버로딩의 차이

메서드 오버로딩 같은 이름의 메서드를 여러 개 정의하는 것입니다. 이때 메서드의 매개변수의 개수나 타입이 다르면, 컴파일러는 해당 매개변수에 맞는 메서드를 선택합니다. 메서드 이름이 같아야 함 매개변수의 개수, 타입, 순서가 달라야 함 반환 타입과 접근 제어자는 메서드 오버로딩과 관련이 없음 메서드 오버라이딩 상위 클래스의 메...

Cookie vs Session vs Token

쿠키 기반 자격 증명 방식 쿠키는 크롬이나 사파리 같은 브라우저에 저장되는 작은 텍스트 조각입니다. 브라우저는 사용자의 컴퓨터에 설치된 소프트웨어이므로 쿠키는 사용자가 갖고 있는 정보라고 할 수 있습니다. 사용자는 브라우저의 설정 화면이나 개발자 도구에서 쿠키를 확인하고 수정, 삭제할 수 있습니다 쿠키는 당사자뿐만 아니라 제 3자가 조회하는...

스택오버플로우 오류해결

문제발생 리뷰에 대한 평점기능을 구현하고 Postman으로 테스트를 했는데 갑자기 스택오버플로우라는 에러가 발생했다 해결방법 스택오버플로우 사이트를 클론코딩을 했지만 스택오버플로우가 뭔지 잘 몰랐던 나는 검색을 하기 시작했다. 스택오버플로우가 뭐지?? Stack Overflow는 Stack 영역의 메모리가 지정된 범위를 넘어갈 때 발생하...

Auditable 오류 해결

멘토님에게 작성날짜, 수정날짜칼럼이 모든 테이블에 들어 가도록 만들면 좋겠다는 피드백을 받았다. 이미 DB설계를 마친 상황에서 모든 테이블에 하나씩 추가를 하는 것은 비효울적이라고 생각이 들어서 BaseEntity를 만들고 다른 Entity에서 상속 받는 것으로 문제를 해결하는 의견을 내었다. 다행히 팀원분들이 동의를 해주어서 검색을 해가며 ...

📧이메일 인증

이메일 인증 보안을 위해 이메일 인증 기능을 넣었습니다. 사용자가 회원가입을 진행합니다. 사용자의 정보를 데이터베이스에 저장하고, 계정 상태를 MEMBER_TEMP로 설정합니다. 사용자의 계정에 대한 고유한 메일키를 생성합니다 회원의 이메일주소로 이메일을 보내고, 생성된 메일키를 이메일 링크를 클릭하면 서버에서 인증키를 확인하고 회원의 상...