본문 바로가기

프로그래밍12

[Git] add LF will be replaced by CRLF warning 해결 git에 레파지토리를 생성하여 기존에 있던 프로젝트를 git add명령어를 수행하면 아래와 같은 경고가 발생할 수 있습니다. 오류가 아닌 경고여서 지나칠 수도 있겠지만 그대로 두었다가 나비효과처럼 다른 오류로 이어질 수 있는 상황을 만들고 싶지 않아 해결하는 과정을 공유해 보겠습니다. > git add . warning: in the working copy of 'gittest.txt', LF will be replaced by CRLF the next time Git touches it 위와 같은 warning 경고문이 여러 줄로 표출되어서 처음 겪으시는 분들은 살짝 당황할 수도 있을 것 같습니다. (저는 절대 당황하지 않았습니다....) 문제 발생 이유 경고 메시지로 표출되는 LF와 CRLF는 OS에.. 2023. 7. 7.
[Spring Boot] 알아두면 편리한 Annotation 사용 및 정리 Spring Boot 개발 프로젝트를 진행할 때 반복된 작업을 줄여주고 생산성 향상을 위해 많은 개발자들이 Annotation을 사용하고 있습니다. 어노테이션을 통해서 빈을 주입받거나, 테스트 환경 구성, 생성자와 getter/setter 등을 쉽게 사용할 수 있게 합니다. 기본적인 Annotation @SpringBootApplication 해당 어노테이션을 사용하면 Auto-Configuration, Component-Scan 등을 통해 하위에 있는 패키지의 모든 설정과 생성을 자동으로 실행합니다. 어노테이션이 선언된 위치부터 수행되므로 프로젝트 최상단에 선언해야 합니다. @SpringBootApplication public class Application { public static void mai.. 2023. 4. 11.
[SpringBoot] lombok error variable not initialized in the default constructor 해결 방법 SpringBoot 프로젝트 개발 필수 라이브러리 중 하나인 lombok을 사용할 때 variable not initialized in the default constructor이라는 에러를 마주할 수 있습니다. @Getter @RequiredArgsConstructor public class HelloResponseDto { private final String name; private final int amount; } @RequiredArgsContructor 어노테이션은 final 키워드를 사용하고 있는 속성들에 대해 생성자를 자동으로 생성해 주는데 lombok이 정상적으로 동작하지 않아 생성 에러가 발생한 것 입니다. Gradle 의존성 추가 시 에러가 발생하지 않아도 디버깅 시 발생하는 에러입.. 2023. 3. 23.
[SpringBoot] Gradle Could not find method compile 오류 해결 방법 Springboot에서 새로운 라이브러리 추가를 위해 compile명령어를 사용해야 합니다. 라이브러리를 다운로드하기 위해 gradle에서 명령어를 실행하면 Could not find method compile()이라는 오류가 발생합니다. dependencies { implementation('org.springframework.boot:spring-boot-starter-web') testImplementation('org.springframework.boot:spring-boot-starter-test') compile('org.projectlombok:lombok') } 오류 원인 Gradle 버전에 따라 지원하는 명령어 차이가 있습니다. Gradle 7.0버전 이전에는 dependencies에서 .. 2023. 3. 19.
시간복잡도 빅오(big-O) 표기법 알고리즘 시간복잡도 시간복잡도란 입력크기에 대해 알고리즘이 어떠한 문제를 해결하는 데 걸리는 시간으로 주요 로직 반복 횟수를 기준으로 측정됩니다. 시간이라고 하면 알고리즘의 시작시간부터 끝시간까지 측정해서 나오는 결과의 시간으로 보는데 이러한 측정방법은 개인의 컴퓨터 사양과 환경에 따라 영향을 받을 수 있습니다. 따라서 시간복잡도는 입력 크기를 기반으로 알고리즘 안에서 로직이 몇 번 반복되었는지 중점으로 계산합니다. 빅오(Big-O) 표기법 알고리즘을 수학적으로 정확하게 표현해주기 위해 나온 것이 빅오 표기법입니다. 빅오(Big-O) 표기법은 알고리즘 수행에 필요한 실행 시간을 스텝의 수로 나타낼 수 있습니다. Big-O를 이해하면 알고리즘 분석을 빠르게 할 수 있고, 어떠한 알고리즘을 사용할지 빠르게 결정할 수.. 2023. 3. 9.
gitlab merge conflicts 해결 방법 gitlab으로 협업 프로젝트를 진행하다 보면 같은 파일을 여러 명이서 동시에 수정하는 경우가 생기게 됩니다. 이때 동시에 같은 파일 작업물을 git repository로 push를 하고 merge를 수행하는 경우 conflicts (충돌)이 발생하게 됩니다. Merge requests에 들어가서 프로세스를 진행하다보면 merge conflicts 발생 시 아래와 같은 화면이 표출됩니다. gitlab merge conflicts 해결을 위해 Resolve locally와 Resolve conflicts 2가지 해결 방법에 대해 설명드리겠습니다. git merge conflicts 해결 방법 1. Resolve conflicts 이 방법은 gitlab에서 클릭 몇번으로 확인 과정만 거치면 해결해주기 때문에.. 2023. 2. 21.
git pull fatal: refusing to merge unrelated histories 에러 해결 로컬저장소와 원격저장소(git repository) 동기화를 위해 git pull 명령어를 사용하면 fatal: refusing to merge unrelated histories와 같은 에러가 발생합니다. > git pull origin master From https://gitlab.tistory.com/Diagnocs/serv/oem/service_test * branch master -> FETCH_HEAD fatal: refusing to merge unrelated histories git pull 명령어로 로컬저장소와 원격저장소(git repository)를 동기화 할때 아래와 같이 수행됩니다. fetch로 원격저장소 데이터를 가져온다. 가져온 데이터를 로컬저장소에 merge한다. merge.. 2023. 2. 16.
[git] 생성부터 원격 저장소로 push하기 (add, remote, pull, commit) 현시점 개발자에게 git은 기본 중의 기본입니다. git을 사용하기 위한 명령어 init, add, commit, pull, push 등 여러 가지가 있습니다. 이번 내용에는 git 기본 명령어와 git 흐름(Workflow)에 대해 알아보겠습니다. git 흐름(Workflow) Working Directory git init 명령어로 설정해둔 디렉터리로 현재 내가 작업하고 있는 디렉터리 공간입니다. Staging Area git add 명령어 수행시 Working Directory에 있는 파일들이 Staging Area로 이동합니다. 수정이 완료되어 commit을 기다리고 있는 파일들의 공간입니다. Repository (local) git commit 명령어 수행시 Staging Area에서 Local.. 2023. 2. 8.
Javascript TDZ(Temporal Dead Zone)이란? Javascript let의 특징을 찾아볼때 TDZ(Temporal Dead Zone)이란 개념이 나옵니다. let 변수는 스코프 최상단부터 선언이 완료되는 시점까지의 공간을 '시간상 사각지대(TDZ, Temporal Dead Zone)'에 들어간 변수라고 표현합니다. '시간상' 이라는 말이 붙는 이유는 사각지대가 코드의 작성 순서가 아니라 코드의 실제 실행 순서에 의해 형성되기 때문입니다. 시간상 사각지대(TDZ, Temporal Dead Zone) '시간상 사각지대(TDZ, Temporal Dead Zone)'의 이해를 위해 아래 예시를 같이 보겠습니다. function onEvent() { // TDZ 시작지점 (변수 x가 사용됨) var tempFunc = () => console.log(x); .. 2022. 8. 31.
Javascript var와 let 특징 및 차이점 비교 javascript 내에서 변수를 선언해서 사용할 때 var와 let을 많이 혼용해서 사용하는 분들이 많으실 겁니다. javascript 언어 초기 개발 당시에 변수는 var만 존재하고 있었고, ES6(ECMAScript2015)부터 let이 추가되었습니다. 결론부터 말씀드리면 var보단 let을 사용하는 것을 선호합니다. var와 let의 차이점과 특징을 분석해보고, 왜 let을 사용해야 하는지 알아보겠습니다. var의 특징 1. 변수 중복 선언 허용 var는 같은 변수명으로 중복 선언이 가능합니다. var x = 1; var y = 1; var x = 100; var y; // 초기화 되지 않았으므로 무시됨 console.log(x); // 100 console.log(y); // 1 위에 예시와 같.. 2022. 8. 24.
반응형