개발공부
-
github개발공부 2024. 6. 13. 23:35
[GIT]GIT은 버전관리 시스템으로, 과거 CVS, SVN 등의 버전관리 시스템에서 발전한 시스템입니다. 여러명의 사용자들 간에 파일에 대한 작업을 조율하는데 사용됩니다. 그중에서 git bash는 WINDOWS에서 git을 설치하면 사용할 수 있는 유닉스 쉘 프로그램으로, 유닉스 환경에서 사용하기 때문에 linux, mac의 terminal처럼 사용이 가능한 프로그램 입니다. (windows의 cmd는 리눅스처럼 CLI환경이지만, 리눅스와는 명령어 등 세부적인 부분에서 다른 부분이 존재합니다) 따라서 linux, mac, windows 어느 환경을 사용하던 동일한 방식으로 git을 사용할 수 있다는 장점이 있으며 유닉스 쉘 프로그램이므로 유닉스를 쓰듯이 다른 사용 역시 가능하다. (자바 파일 생성, ..
-
메이븐개발공부 2024. 6. 13. 23:33
[메이븐이란?]https://maven.apache.org/메이븐은 자카르타 터빈 프로젝트라는 자바 프로젝트의 build process를 단순화 하기 위려는 시도로 시작되었습니다.과거에는 Apache Ant라는 빌드 파일을 가진 여러 프로젝트가 있고 jar파일을 CVS에 올렸습니다. 이 과정에서 표준 방법공유, 구성정의, 정보게시, 빌드 균일화 등의 목표-관심 영역이 생기게 되었고 이런 목표를 기반으로 나오게된 build tool입니다.[빌드]빌드의 기본적인 뜻은 소스코드를 기계어로 변환하는 과정으로, 해당 과정은 전처리-컴파일-어셈블-링크 등으로 나눠지며 소스코드를 어셈블리어->기계어로 변환하는등의 전처리를 포함한 과정을 거쳐 컴퓨터에서 읽을수 있는 파일로 변환하는 등의 모든 과정을 build라고 합니..
-
디자인 패턴개발공부 2023. 6. 26. 21:19
디자인 패턴(Design Pattern) 디자인 패턴(Design Pattern)은 소프트웨어를 설계할 때 자주 발생하는 문제들에 대한 해결책의 형식들이며, 모종의 표준 설계 방식이다. 어플리케이션 개발과정에서 발생하는 문제는 유사한 경우들이 많고, 해결책도 형식화 할 정도로 유사한(동일한) 경우가 많기 때문에 패턴이라 이름 붙인것 같다. 이처럼 디자인 패턴은 이미 많은 개발자들이 거쳐온 문제 해결의 방법으로서 형식화가 된 만큼 효율적이며 안정적이라 할 수 있다. 단, 디자인 패턴이 모든 문제의 답은 아니다. 굳이 디자인 패턴을 사용하지 않아도 될 수도 있으며 사용한다면 왜 효율적인지, 언제 써야하는지, 어떻게 써야하는지 등에 대해 충분한 인지가 필요하다. 이런 디자인 패턴의 종류는 엄청나게 많으며 다양..
-
[프로그래머스] 콜라츠 추측 - java개발공부 2023. 6. 25. 16:33
문제 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. 제한 사항 입력된 수..
-
TCP와 UDP의 특징과 차이점개발공부 2023. 6. 20. 03:06
TCP(Transmission Control Protocol), UDP(User Datagram Protocol) 는 OSI 7계층의 전송계층에서 사용되는 프로토콜이다. 전송 계층이란 송신자와 수신자를 연결하는 통신 시스템, 서비스를 제공하는 계층이다. 다시말해 이 계층에서 다루는 주된 일은 데이터의 전달이다. 그리고 프로토콜의 뜻은 조약, 규약이다. 즉, TCP와 UDP라는 프로토콜은 통신 회선을 이용한 데이터 교환/전송에 대한 규약중 하나라 할 수 있다. 이 두가지는 포트번호를 이용해 주소를 지정하는것처럼 공통된 부분도 존재하지만, 다른 부분이 많이 존재하는 방식이다. TCP (Transmission Control Protocol) TCP는 연결 지향적인 프로토콜이다. 클라이언트와 서버가 연결된 상태..
-
Spring 삼각형의 요소 PSA개발공부 2023. 6. 15. 00:40
PSA ( Portable Service Abstraction, 휴대용 서비스 추상화 ) 스프링 삼각형의 3대 요소는 DI (+ IoC), DI, PSA 세가지다. 스프링에서는 환경의 변화와 상관 없이, 기술을 내부에 은닉하고 개발자에게 편의적으로 제공하는 서비스 추상화가 존재한다. 서비스 추상화를 예시로 설명하자면 트랜잭션을 사용하기 위해 @Transactional 어노테이션을 쓴다거나, 컨트롤러에서 @GetMapping 을 사용할 때 추상화를 통해 기술은 내부적으로 숨겨지고 서비스를 제공한다. 앞에서 나온 말처럼 '기술은 내부에 은닉하고, 개발자에게 편의적으로 제공' 한다. 더 나아가 서비스 추상화로 제공되는 서비스를 묶고, 다른 기술 스택으로 바꿀 수 있는 확장성을 갖춘것이 PSA (Portable..
-
[javascript] == 와 === 의 차이개발공부 2023. 6. 15. 00:15
java 에서는 자료형이 int, double, long ... 의 원시 자료형이 있고, Integer, Double, Long 등의 래퍼클래스의 자료형이 존재한다. 그러나 javascript 에서는 명확한 자료형이 존재하지 않는다. 자바스크립트에서 변수를 선언할때 var 외에도 let, const가 존재하지만 이는 자료형을 나누는 것이 아니라 변수의 스코프, 중복선언이나 재할당의 여부 등의 차이가 있고 자료형의 구분에 쓰이지 않는다. 그래서 자바스크립트에서는 값을 비교할때 ==, === 두가지 형식으로 비교할 수 있다. == (Equal Operator, 동일 연산자) ==는 동일 연산자라는 뜻이다. a와 b의 '값'이 같을때 true, 아닐때 false를 반환한다. var a = 1; var b = ..