본문 바로가기

Git 버전별 차이보기, commit log 조작하기(with git bash) Git 버전별로 차이 확인하는 방법 지난 포스트에서 git을 이용할 프로젝트 폴더를 만들고 commit을 이용해서 파일이 수정될 때마다 정리를 하는 방법을 익혔다.이번 포스트에서는 만들어낸 commit으로 만든 버전 별로 차이점을 확인한다."git log -p" 기존의 git log 명령에서 -p 옵션을 주면 commit별로 어느부분이 변경되었는지 확인할 수 있다.commit 4daa2f~~(노란줄) : commit의 고유 아이디Author : 작성자의 닉네임과 이메일Date : commit된 날짜와 시간commit message : commit할 때 작성한 메시지(-) : 이전의 소스 코드 / (+) : 변경된 소스 코드"git diff .." : 버전아이디1 부터 버전아이디2 까지 log를 보여줌."..
Git 시작하기(with bash : 저장소 만들기, 관리할 파일 등록하기 등..) Git 시작하기 Git은 형상관리, 버전 관리 시스템으로 여러명이 개발할 때 소스코드를 관리를 효율적으로 할 수 있게 해주는 시스템이다.개발자라면 기본으로 알아두어야 할 사항이다.지금까지 git을 사용해왔지만 단순히 commit, push, pull등의 기능만 사용했다면 branch, merge등을 이용해 현업에서 사용하듯 관리를 해보려고 한다.Sourcetree 같은 툴도 사용해봤지만 Command Line를 사용하는 것이 익숙해야 다양한 환경에서도 적응할 수 있다.Git 저장소 만들기1. git bash를 실행2. 적당한 경로에 관리할 프로젝트 디렉토리 생성3. 프로젝트 디렉토리에 "git init" 입력.4. ".git" 파일이 생성되면 완료.Git 파일생성 및 Git에게 관리하도록 설정하기 1. ..
제네릭(Generic)에 대한 모든 것(제네릭에 대해서 설명해주세요) 제네릭(Generic) 제네릭 타입을 이용해서 컴파일 과정에서 타입 체크를 할 수 있다.제네릭은 클래스와 인터페이스, 메소드를 정의할 때 타입 파라미터로 사용한다.* 제네릭을 사용하는 이유(=장점)1. 컴파일할 때 타입을 체크해서 에러를 사전에 잡을 수 있다.2. 컴파일러가 타입캐스팅을 해주기 때문에 개발자가 편리하다.3. 타입만 다르고 코드의 내용이 대부분 일치할 때, 코드의 재사용성이 좋아진다.123public class className{...} public interface interfaceName{...} * 클래스, 인터페이스에서 제네릭 타입파라미터 사용법- 실제 사용할 시에는 타입 파라미터에 구체적인 타입을 지정해야 함.1ArrayList list = new ArrayList(); Array..
OAuth2.0 구조와 동작 프로세스(feat. 생활코딩) OAuth 2.0 구조와 동작 프로세스 * OAuthOpenID로 개발된 표준 인증 방식, API인증과 사용자인증에 사용된다.* OAuth를 사용하는 이유보안의 수준을 알 수 없는 애플리케이션에서 일일이 계정을 만들어 사용하면 ID/PW관리가 어렵고 개인정보가 유출되면 연쇄적으로 피해가 심각해질 수 있기 때문에 보안의 수준이 어느정도 검증된 사이트(OAuth provider(ex. google, facebook))의 API를 이용해서 인증을 받는 방법(OAuth)이 보안상 좋기 때문이다.* 참고로 비영리사이트 생활코딩(https://opentutorials.org)의 동영상을 보고 공부한 후 정리한 것임. 그림과 내용을 출처 역시 생활코딩 사이트입니다.구조와 동작 프로세스* 사전에 용어 정리Resourc..
디자인 패턴 한 방에 정리하기(feat. 혹시 디자인 패턴 아시는 것 있으세요?) " 디자인 패턴 아시는 것 있으면 설명해주세요? "면접에 자주 나오진 않지만 기본 소양으로 알고 있으면 좋아 세 줄 요약 스타일(반드시 세 줄 아님)로 정리한다.코드와 이론 설명은 검색해서 다른 블로그에서 찾아볼 것.템플릿 메소드 패턴(Template method pattern)템플릿, 말 그대로 템플릿을 만들어주고 특정 메서드 안을 채워넣기만 하면 되는 디자인 패턴이다. (PPT 템플릿처럼 제목, 목차, 내용, 질의응답 칸이 있고 거기에 맞게 글을 채워넣듯)예를 들어 하나의 기능(게임 접속 과정(GameConnectMgr)에 4가지의 절차(보안->인증->권한->접속)를 개발해야 할 때, 필요에 따라 변경되는 부분을 하위클래스에 위임하도록 하고 템플릿을 보내주는 방법이다.A->B->C->D, A->B->..
스택, 큐, 덱(Stack, queue, deque)의 특징에 대해 설명해보세요! 스택, 큐, 덱의 특징에 대해 설명해주시겠어요? 스택(stack) : 자료의 입력과 출력을 한 곳(방향)으로 제한한 자료구조.LIFO(Last In First Out)구조 push(), pop()함수의 콜스택에 쓰이고 문자열을 역순으로 출력할 때, 연산자 후위표기법등에 쓰인다.큐(queue) : 자료의 입력과 출력을 한 쪽 끝(front, rear)으로 제한한 자료구조.FIFO(First In First Out)구조 put(), get()컴퓨터 버퍼에서 주로 사용, 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킨다.일반적인 큐의 단점 : 큐에 빈 메모리가 남아 있어도 꽉 차있는것으로 판단할 수 있음 rear가 배열의 끝에 도달했을 경우.=> 개선된 원형 큐가 나옴.원형 큐의 단..
Spring MVC 구조의 처리 과정을 설명해보시오. (MVC process) MVC 패턴의 처리 과정을 설명해주실수 있나요? [Spring MVC 일반적인 구조][Spring MVC 구조] 아주 적합한 그림은 없는 것같아서 직접 그리려고 했으나, 간단한 내용이라 판단하여 나중에 그림을 올리도록 하려고 한다. (그나마 내 느낌에 맞는 그림을 퍼옴) Spring에서 MVC 구조로 많이 구성하는데 그 처리 과정을 순서대로 설명하는 면접질문이 있다.Spring MVC 처리 순서1. 클라이언트(Client)가 서버에 어떤 요청(Request)을 한다면 스프링에서 제공하는 DispatcherServlet 이라는 클래스(일종의 front controller)가 요청을 가로챈다.(web.xml에 살펴보면 모든 url ( / )에 서블릿 매핑을하여 모든 요청을 DispatcherServlet이 ..
객체 지향 프로그래밍이 뭔가요? (꼬리에 꼬리를 무는 질문 1순위, 그놈의 OOP) 객체 지향 프로그래밍(Object Oriented Programming) 여러 소프트웨어 관련 IT기업 신입사원 기술면접에서 면접자들 긴장을 풀어줄 겸 워밍업으로 자주 나오는 질문이다. "객체 지향 프로그래밍에 대해 설명 한번 해주세요" 가장 기본인 질문이지만, 이것마저 대답을 못하면 첫인상이 나빠지는 결과를 만들 수 있기에 중요한 질문이다. 앞서 워밍업이라 표현했지만 답변에 따라 꼬리에 꼬리를 무는 모든 질문의 시작점이기도 하다. 객체 지향 프로그래밍(OOP)이 뭐에요? 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 이러면 이제 아까 ..