본문 바로가기
728x90

분류 전체보기259

[Git] add 파일의 life cycle Git의 working directory의 모든 파일은 Tracked(관리하고 있는 파일)와 Untracked(관리하지 않는 파일)로 나눈다. 여기서 Tracked 파일이 관리되고 있는 파일이라는 의미는 이미 해당 파일이 스냅샷에 포함된 파일임을 뜻한다. Tracked 파일은 또 Unmodified(수정되지 않음)와 Modified(수정됨) 그리고 Staged 중 하나의 상태를 가진다. 간단하게 staging area에서 커밋을 기다리는 파일이 staged, 커밋 후 수정되지 않은 파일이 unmodified, 커밋 후 수정된 파일이 modified 인 것이다. 이 외의 모든 파일은 Untracked 파일로서, working directory 에 있는 파일 중 스냇샵에도 stag.. 2023. 11. 26.
[Git] Git 개체 - Commit https://codingralro.tistory.com/248 [Git] Git 개체 - Tree https://codingralro.tistory.com/247 [Git] Git 객체 - Blob Git의 명령어를 보다 잘 사용하기 위해서는 해당 명렁어가 깃 내부적으로 어떻게 동작하는지에 대해 알아야 한다. 또한 동작과정을 이해하기 위해서 codingralro.tistory.com 저번 글에서 다루었던 Tree 개체에 이어 이번 글에서는 Git 개체 중 마지막 남은 Commit 개체에 대해서 다루어보겠다. 이번 글에서 다루는 예제들은 저번 글과 이어지는 예제이기 때문에, 예제가 이해가 안된다면 위의 글을 참고하면 된다. Commit 개체란? Tree 개체를 통해 Git의 staging area에 올라.. 2023. 11. 22.
[Git] Git 개체 - Tree https://codingralro.tistory.com/247 [Git] Git 객체 - Blob Git의 명령어를 보다 잘 사용하기 위해서는 해당 명렁어가 깃 내부적으로 어떻게 동작하는지에 대해 알아야 한다. 또한 동작과정을 이해하기 위해서는 깃 내부를 먼저 들여다볼 필요가 있다. 이 codingralro.tistory.com 저번 글에서는 Git 개체 중 Blob 개체에 대해서 알아보았다. 이번 글에서 사용하는 예제는 이전 글과 이어지기 때문에 예제가 잘 이해되지 않으신 분들은 위의 글을 한번 보고 오면 된다. 이번에는 Git 개체 중 Tree 개체에 대해서 알아보겠다. Tree 개체란 이름에서 알 수 있듯이, Tree 개체는 tree 구조를 가능하게 하기 위한 개체라고 생각하면 된다. 내용만을 저.. 2023. 11. 21.
[Git] Git 개체 - Blob Git의 명령어를 보다 잘 사용하기 위해서는 해당 명렁어가 깃 내부적으로 어떻게 동작하는지에 대해 알아야 한다. 또한 동작과정을 이해하기 위해서는 깃 내부를 먼저 들여다볼 필요가 있다. 이를 위해 이번 글에서는 git 홈페이지에서 메뉴얼로 제공하고 있는 progit을 통해 git 동작 시 생성되는 매우 중요한 개체 중 하나인 Git 개체에 대해서 알아보겠다. Git 개체란? 저번 깃 포스팅에서 git의 init 명령어를 통해 해당 프로젝트 폴더를 깃 프로젝트 폴더로 만들 때, 매우 중요한 .git 디렉토리 폴더가 생성이 되는 것을 볼 수 있었다. 또한, 폴더 내부에 어떤 파일과 폴더들이 생성되는지도 확인하였다. user@DESKTOP-UCJOAKJ MINGW64 /d/GitStudy/.git (GIT_D.. 2023. 11. 21.
[토비의 스프링] IoC에 대한 이해 토비의 스프링을 공부하면서 이해한 내용을 요약하고 정리하기 위한 포스팅이다. 이번 글에서는 스프링의 핵심 개념 중 하나인 IoC(제어의 역전 : Inversion of Control)에 대해서 알아보겠다. 이 포스팅에서 사용되는 예제는 이전 포스팅이 "객체 지향에 대한 이해"와 이어지는 예제이다. 오브젝트 팩토리 이전 글에서 작성된 예제는 처음에는 객체 지향과는 거리과 먼 코드였지만, 객체지향의 개념을 하나 하나 적용해나가면서 객체지향적인 코드로 바뀔 수 있었다. 이번 글에서는 객체 지향 코드로 만들기 위해 이전 글에서 그냥 무심코 넘어갔던 부분을 되짚으면서 제어의 역전에 대한 이해의 실마리를 찾아보겠다. 이전 예제에서 Test를 위한 코드를 먼저 살펴보자. public class UserTest { p.. 2023. 11. 20.
[토비의 스프링] 객체 지향에 대한 이해 토비의 스프링을 통해 이해한 내용을 요약하고 정리하기 위한 포스팅이다. 이번 글에서는 객체지향에 대한 이해와 그를 바탕으로 객체 지향에서의 의존성 주입이 왜 중요한지에 대해서 간단하게 알아보겠다. 객체 지향적이지 않은 DAO 객체 지향적이지 않은 DAO(Data Access Object) 코드를 살펴보면서 어떠한 문제가 발생할 수 있는지를 알아보고 해당 문제들을 객체 지향적으로 해결해나가보자. 먼저, 사용자 정보를 저장하기 위한 간단한 User 클래스를 만들자. package com.chapter1.spring.domain; public class User{ int id; String name; String nickName; public int getId() { return id; } public voi.. 2023. 11. 20.
[Git] init Git을 설치하고 초기 설정을 진행하였다면, Git을 사용하기 위한 준비는 끝났다. 이제 Git의 여러 명령어를 통하여 Git을 실제로 사용해 볼 것인데, 단순히 어떤 작업을 하기 위해서는 이런 명령어를 사용하면 돼라는 식의 내용 전달 보다는 해당 명령어를 사용하였을 때, Git이 어떤 식으로 동작하는지를 같이 알아봄으로써, Git 자체에 대한 이해도를 높이는 방식으로 공부해 보자. Git 프로젝트의 세가지 단계 Git 프로젝트에는 3가지의 단계가 존재하는데, 이 부분에 대한 이해는 Git을 공부하기 위해서는 반드시 짚고 넘어가야 할 부분이다. Git은 해당 프로젝트의 파일을 다음의 3가지 상태로 관리한다. 상태 설명 Committed 데이터가 로컬 데이터베이스에 안전하게 저장됨을 의미 Modified .. 2023. 11. 18.
[Git] 설치 및 초기 설정 Git을 사용하기 위해서는 먼저 Git을 자신의 컴퓨터에 설치하여야 한다. 설치방법으로는 여러가지가 있는데, 이번 포스팅에서는 Git 에서 제공하는 실행파일을 다운로드하여 설치하여 보겠다. 이번 글에서는 Window 환경에서 Git을 설치하는 방법만을 제공하기 때문에, Mac이나 Linux 등 다른 환경에서 설치하는 방법은 다른 포스팅을 참고하기 바란다. Git 설치 ( Window ) Git을 설치하는 방법은 매우 간단하다. 먼저, 아래의 깃 홈페이지의 다운로드 페이지를 들어가면 아래와 같은 사진의 화면을 볼 수 있다. https://git-scm.com/download/win Git - Downloading Package Download for Windows Click here to download .. 2023. 11. 18.
[Git] Git 이란? Git 이란? 개발을 공부하다보면, Git이라는 툴을 자주 접하게 되고 개발자라면 Git을 사용할 줄 알아야 한다는 말도 자주 듣게 된다. 여기서 말하는 Git은 무엇이길래 개발을 하는 사람이라면 알아야하는 것일까? version controll system( = configuration management tool ) Git은 버전 관리 시스템 중 하나로써 형상 관리 도구라고도 부른다. 여러 애플리케이션을 살펴보면 초기에 한번만 만들어지고 끝나는게 아닌 이후에도 새로운 기능이 추가, 버그 수정, 기능 향상 등 프로그램이 계속해서 업그레이드 된다. 만약 애플리케이션의 새로운 추가 기능을 넣어서 업그레이드 시켰는데, 해당 기능에 심각한 오류가 발견어 해당 기능 이전의 버전으로 돌아가야 하는 상황이 생긴다면.. 2023. 11. 18.
[자바/Java] Synchronized Synchronized synchronized는 '동기화'를 의미한다. 자바에서 말하는 동기화란 무엇일까? 프로그램은 대부분 멀티 쓰레드를 사용하여 성능을 이끌어낸다. 여러 개의 쓰레드가 동시에 여러 작업들을 진행해주므로 단일 쓰레드에 비해 작업 효율면에서 큰 이점을 가지기 때문이다. 이러한 멀티 쓰레드 환경에서 주의할 점은 여러 쓰레드가 한 자원을 사용하는 경우에도 해당 자원의 안정성과 신뢰성을 보장해주어야 한다는 것이다. 그렇기 때문에 특정 쓰레드가 자원을 사용하고 있는 경우에, 다른 쓰레드가 해당 자원에 접근하지 못하도록 막는 것이 필요하다. 이 때 사용되는 것이 바로 synchronized, 동기화인것이다. 즉, 하나의 자원을 사용하기 위해 여러 쓰레드들을 조화시켜 충돌하지 않도록 하는 것이다. .. 2023. 11. 16.
Singleton Pattern Singleton Pattern 싱글톤 패턴의 정의는 다른 디자인 패턴에 비해 매우 단순하다. 싱글톤 패턴이란, 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. 하지만, 개념의 정의가 단순하다고 별다른 이해 없이 사용하게 된다면 메모리 등의 프로그램은 있는 대로 잡아먹으면서, 동작은 느려지는 프로그램을 마주하게 될 것이다. 이러한 일이 발생하지 않도록, 싱글톤 패턴은 어떻게 사용해야 하는지 무엇을 주의해서 사용해야 하는지 살펴보자. 기초적인 Singleton Pattern 구현 및 문제점 싱글톤 패턴을 구현하기 위해서는 몇 가지 필요한 조건이 있다. 일반적으로 클래스의 인스턴스를 생성하여 사용하기 위해서는 new 연산자와 생성자를 사용하여 인스턴스를 생성 해 준 후 사용하게 된다. 이 때, ne.. 2023. 11. 16.
[자바스크립트] 제너레이터 javascript - iterable & iterator [자바스크립트] iterable & iterator iterable 이터러블(iterable)이란 자료를 반복할 수 있는 객체를 말한다. 반복할 수 있는다는 객체가 어떤 의미일까? 반복할 수 있는 객체, 즉 이터러블한 객체는 순회할 수 있는 객체를 의미한다. 우 codingralro.tistory.com 제너레이터에 대해서 더 잘 이해하기 위해서는 먼저 이터러블, 이터레이터에 대해서 알고 있어야 한다. 해당 내용에 대해서 모르시는 분들은 위의 블로그를 참고하기 바란다. 제너레이터(Generator)란 제너레이터란, iterable이면서 동시에 iterator인 함수이다. Promise를 보완하기 위해 async가 나온 것과 같이 제너레이터도 이터.. 2023. 11. 13.
728x90
반응형