전체 글 (72) 썸네일형 리스트형 git 설치하기 오늘은 window10에 git을 설치할 예정이다. git은 개발자라면 다들 들어봤을 것이라 생각한다. 위키백과에서는 git을 프로그램의 소스 코드 관리를 위한 분산버전 관리시스템이라 설명한다. 말그대로 여러 개발자들이 협업하여 하나의 프로젝트를 만들때 소스코드 관리하는데 주로 사용된다. #git 설치하기 설치 파일 다운받기 https://git-scm.com/ 위의 사이트에 들어가면 오른쪽 하단에 "Download for Windows"라 써있는 곳을 클릭 설치파일이 나오고 설치시 이것저것 설정하는 부분은 그냥 다 next를 했다. #git 설치 확인 깃에서는 리눅스명령어를 사용하기 때문에 윈도우에 깃을 설치하면 리눅스 명령어를 사용할 수 있도록 깃배시(Git Bash)라는 프로그램이 같이 설치된다. .. 스프링 삼각형과 설정 정보 - AOP / PSA AOP(Aspect-Oriented Programming) 관점 지향 프로그래밍 관점지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 스프링 DI가 의존성(new)에 대한 주입이라면 스프링AOP는 로직(code)에 대한 주입이다. 아래의 그림을 보면 입금, 출금, 이체 모듈 모두 기능이 반복적으로 나타나는 것을 볼 수 있다. 이처럼 다수의 모듈에 공통적으로 나타나는 부분이 존재하는 것을 "횡단 관심사"라고 한다. 핵심 관심사는 모듈별로 다르지만 횡단 관심사는 모듈별로 중복되어 나타나는 부분이다. 프로그래머의 입장에서 "반복/중복은 분리해서 한 곳에서 관리하라"는 말이 떠오르지만 AOP에서는 더욱 진보된 방법을 사용한다... 의존성주입 DI(Dependency InJection)의 종류 스프링을 이해하는데는 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형이라는 애칭을 가진 IoC/DI, AOP, PSA라고 하는 스프링의 3대 프로그래밍 모델에 대한 이해가 필수이다. DI(의존성 주입) 자바에서의 의존성이란 new이다. ex) 자동차가 내부적으로 타이어를 생산한다. 자바로 표현하자면 아래의 코드와같다. interface Tire { String getBrand(); } public class KoreaTire implements Tire { public String getBrand() { return "코리아 타이어"; } } public class AmericaTire implements Tire { public String getBrand() { return.. 스프링 Spring이란? 스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크 '자바 엔터프라이즈 애플리케이션', '프레임워크' 이 두개의 단어 읽을 때는 대략 이런 단어겠구나로 유추하고 위의 글을 이해했다고 생각했지만 좀 더 자세히 살펴보자. 자바 엔터프라이즈 애플리케이션(Java EE applications) Java EE사양을 준수하는 응용 프로그램으로 Java EE 이전에는 사양 이름이 J2EE(Java 2 Platform, Enterprise Edition)였다. Java EE라는 용어에는 Java EE 및 J2EE 사양이 포함된다. Java EE(Java Enterprise Edition) 자바 EE 플랫폼은 자바 SE 플랫폼을 기반으로 확장되었다. 자바 EE 플랫폼에서는 다.. 정적 멤버 클래스 vs 비정적 멤버 클래스 기존에 InnerClass와 Nested Class에 대해서 정리해놓은 부분 확인 https://joey-program.tistory.com/16?category=993236 중첩 클래스란 다른 클래스 안에 정의된 클래스를 말한다. 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여야하며, 그 외의 쓰임새가 있다면 톱레벨 클래스로 만들어야한다. 중첩클래스의 종류 정적 멤버 클래스 / nested class (비정적) 멤버클래스 / inner class 익명 클래스 / inner class 지역 클래스 / inner class 정적 멤버 클래스 class A{ private int a; static class B{ private int b; } } 정적 멤버 클래스는 클래스 안에 선언되고, Top 클래스의 .. strategy pattern 객체지향의 5원칙 중 하나로 개방폐쇄의 원칙이 있다. "소프트웨어의 구성요소들은 확장에는 열려있어야하고, 변경에는 닫혀있어야한다."는 원칙이다. 기존 구성요소의 수정은 최소화하되 확장에는 적극적이여야한다는 말이다. 결합도가 낮다는 의미다. 보면 클라이언트는 doSomething이라는 interface를 사용하며, 구현 class를 직접 사용하지 않는다. 이렇게 함으로써 결합도를 낮출 수 있고 만약 새로운 구현이 필요하다면 우리는 Abstraction라는 Instance를 상속받은 Class를 하나 더 만들어 사용하면 됩니다. 예시 // 다양한 무기(전략)를 공통된 방식으로 사용하기 위해 인터페이스 정의!!! (아주 중요) interface Strategy { public abstract void runS.. Adapter Pattern @Adapter Pattern 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환한다. 어댑터패턴을 이용하면, 인터페이스 호환성 문제로 같이 쓸 수 없는 클래스를 연결해서 쓸 수 있다. 어댑터 패턴을 설명할 때 가장 유명한 예제가 있다. 바로 오리와 칠면조를 예를 든 예제인데 이거만큼 많이 나오고 이해하기쉬운게 없는 거 같다. Duck.interface public interface Duck { public void quack(); public void fly(); } MallardDuck.java public class MallardDuck implements Duck { @Override public void quack() { System.out.println("Quack".. [UML]클래스 다이어그램 디자인패턴 공부하다가 프로그램 설계를 표현하는 것을 보고 공부해보고자한다. UML(Unified Modeling Language) 시스템을 모델로 표현해주는 대표적인 모델링 언어 UML은 소프트웨어를 설계하며 필요에 의해서 사용되는데 일반적으로 아래 3가지의 목적을 가지고 만듭니다. 의사소통 또는 설계 논의를 위해 전체 시스템의 구조 및 클래스의 의존성 파악을 위해 유지보수를 위한 설계의 back-end 문서 제작을 위해 클래스 다이어그램 정적 다이어그램으로 클래스의 구성요소 및 클래스 간의 관계를 표하는 대표적인 UML이다. 이를 통해 시슽템의 일부 또는 전체의 구조를 나타낼 수 있다. 클래스 다이어그램을 이용하면 의존관계를 명확하게 보여주며, 순환 의존이 발생하는 지점을 찾아내서 어떻게 이 순환고리를.. 이전 1 2 3 4 5 6 7 8 9 다음