개발
-
(git) 7 - Git 실습 (고급) git branch개발/git 2024. 10. 14. 22:15
commit 을 하면 기본으로 main branch 가 생긴다. 원래는 master branch 였으나, 이름이 문제가 돼 바뀌었다. ※ 몽고 DB도 동일하게 명칭의 문제가 돼 바뀌었다. Master 서버 -> Primary ServerSlave 서버 -> Secondary Server 우리가 블로그를 만든다 가정해보자.작업이 된 마지막 로그인을 헤더가 가리킨다. 만약 로그인에서 이전에 없던 아이디 중복체크라는 로직을 새롭게 만들고 싶다.그렇다면 이 것을 idea branch 로 새로 만들어서 회원가입과 로그인의 히스토리를 다 든 브랜치로 생성한다. 이렇게 두 가지의 브랜치가 있으며,idea 브랜치에서 중복 체크라는 기능을 별도로 개발할 수 있다. 여기서 두 가지의 가지에서 뻗어나온 기점인 로그..
-
(git) 6 - Git 실습 (중급)개발/git 2024. 10. 13. 18:38
■ git reset 되돌리고 싶을 떄는 reset 을 사용하면 되는데 3가지 옵션이 있다. 1. soft2. mixed3. hard 1. hard hard : 완전히 다 날린다. 지금 사진처럼 완전히 처음 상태로 되돌리는 것이다 .test1 상태로 돌아가기를 원할 때 사용한다. hard 는 test2 를 없애버리기 때문에 사용 시 조심해야 한다. 이렇게 하면 파일까지 다 날라가버린다. 2. mixed mixed : 작업영역에서 아직 add 하지 않은 상태로 되돌린다. test2 를 조금 더 변경해야 할 때 사용 = 작업 영역의 내용 변경이 필요할 때 사용한다. 작업 영역을 바꿀 일이 있다면 git reset --mixed (이 전 커밋 버전) 하게 되면,인덱스 영영과 헤더 영역에서 제거돼 ..
-
(git) 5 - Git 실습 (기초)개발/git 2024. 10. 13. 17:44
git init : ex01 파일을 git 작업 영역으로 설정해주기 git status : test1 파일 만든 후 저장하고 git status 하면 git이 변경된 파일을 감지함※ untracked : 아직 관리되고 있지 않다, 관리하고 싶으면 git add 를 써라 git add . : 변경된 모든 파일을 인덱스 영역에 추가한다. 숨김파일 안에 있는 .git > objects > 7c 안에 해쉬 값이 있는데 이게 바로 인덱스 영역에 있는 형상(초록색 부분)이다. git commit -m "메세지 내용" : git 에 남길 메세지 내용을 적는다. ※ git 최초 설정(사용자 정보)git 처음 사용하는 사람은 git 최초 설정을 해줘야 한다. git config --global user...
-
(git) 4 - Git 의 세 가지 영역 (작업 영역, 인덱스 영역, 헤더 영역)개발/git 2024. 10. 13. 16:42
git 에서는 크게 3가지 영역으로 나눠져 있다. 1. 작업 영역2. 인덱스 영역3. 헤더 영역이다. 해당하는 폴더를 git 폴더로 사용하겠다 = git init그래서 여기에 해당하는 A 폴더를 working directory(작업 영역) 이라 부른다. 작업영역에서 일어나는 변경을 감지해서 기록하고 싶다면 기록하게 되는데이 영역이 바로 인덱스 영역(목차)이다.이는 Tree 목차로 이루어져 있다. 변경이 감지된 파일만 인덱스 영역에 들고오는데,이 명령어가 바로 git add 이다. 인덱스 영역은 폴더(Tree) 만들어 진 파일(BLOB) 이다.※ Binary Large Object (이진수로 된 큰 Object = 파일) 이 인덱스 영역에 있는 것을 영구적으로 기록하고 싶다면 헤더 영역에 넣으면 된다..
-
(스프링 기본) 11 - 스프링 빈 설정 메타 정보(BeanDefinition)개발/Spring 2024. 10. 9. 17:43
스프링이 다양한 설정 형식을 지원하는 것에는 BeanDefinition 이라는 추상화가 있다. 역할과 구현을 나눴기 때문에 xml 이든 자바코드이든 구현하면 된다. BeanDefinition 을 빈 설정 메타정보라 한다.@Bean, 당 각각 하나씩 메타 정보가 생성된다스프링 컨테이너는 이 메타정보를 기반으로 스프링 빈을 생성한다. AnnotationConfigApplicationContext 안에 있는 AnnotatedBeanDefinitionReader 이AppConfig.class 의 설정 정보를 읽어서 BeanDefinition 빈 메타정보를 생성한다. GenericXmlApplicationContext 안에 있는 XmlBeanDefinitionReader 이appConfig.xml 파일을..
-
(스프링 기본) 10 - 다양한 설정 형식 지원(자바코드, XML)개발/Spring 2024. 10. 9. 16:45
스프링은 자바 코드, XML, Groovy 등 다양한 형식의 설정 정보를 받아드릴 수 있게 설계되 있다. 1. 애노테이션 기반 자바 코드 - new AnnotationConfigApplicationContext(AppConfig.class)- AnnotationConfigApplicationContext 클래스를 사용하면서 자바 코드로 된 설정 정보를 넘기면 된다. 2. XML 설정- 최근에는 잘 사용 안하고 레거시 프로젝트들이 XML 로 많이 돼 있다. - XML 사용하면 컴파일 없이 빈 설정 정보를 변경할 수 있는 장점이 있다.- GenericXmlApplicationContext 사용하면서 xml 설정 파일을 넘기면 된다. public class XmlAppContext { @Test ..
-
(스프링 기본) 9 - BeanFactory 와 ApplicationContext개발/Spring 2024. 10. 9. 16:03
■ BeanFactory- 스프링 컨테이너 최상위 인터페이스- 스프링 빈 관리하고 조회하는 역할- getBean() ■ ApplicationContext- BeanFactory 기능 모두 상속받아 제공- 빈 관리 조회 외 수 많은 부가기능 제공 1. 메시지소스활용한 국제화 기능: 한국 -> 한국어, 영어권 -> 영어로 출력 2. 환경변수: 로컬(현재 내 PC), 개발(Test 서버), 운영(실제 프로덕션) 등을 구분해서 처리 3. 애플리케이션 이벤트: 이벤트 발행하고 구독하는 모델 편리하게 지원 4. 편리한 리소스 조회: 파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회 ■ 정리- ApplicationContext 는 BeanFactory 상속 받음- ApplicationContext = 빈 관..
-
(스프링 기본) 8 - 컨테이너에 등록된 모든 빈 조회개발/Spring 2024. 10. 9. 13:27
이전 시간에 컨테이너에 등록한 빈을 Test 코드에서 조회해본다. AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); 컨테이너에 등록된 모든 Bean 을 조회하기 위해서 AnnotationConfigApplicationContext 컨테이너를 만든다.참고로 해당 컨테이너는 ApplicationContext 인터페이스 구현체로 하나의 컨테이너라 할 수 있다. @Test@DisplayName("모든 빈 출력하기")void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (Strin..