분류 전체보기

· Flutter
객체지향언어로 Java와도 닮은 점이 많은 Dart를 배우며 Dart의 특색이라 느끼는 중요한 부분 위주로 정리해 둡니다.Dart 문법중에 특이한게 뭐가 있나 보고 빠르게 코드를 읽어 보실 분들, 다른 언어를 한번 배우신분들을 기준으로 쓰는 글입니다. 프로그래밍 언어가 낯설거나 기초부터 차근차근 제대로 보실분들은 다트 공식문서를 가볍게 보시길 추천 드립니다. (유튜브도 괜찮고요 ㅎㅎ)다트 문서 : https://dart.dev/language Why Dart?JIT (Just In Time)컴파일, 즉 프로그래밍 중에 바로바로 컴파일해주는 기능을 지원하여 개발자가 바로 개발 화면을 확인 가능하게 해줍니다. 동시에 전통적인 방식인 AOT(Ahead Of Time) 컴파일러도 지원합니다Flutter 를 위해..
Tiles 라이브러리를 쓰는 이유Tiles 를 쓰는 이유로는 '공통분모 집중화', '페이지 모듈화' 등 다양한 용어가 나오지만 간단하게 생각하면 아래 그림과 같습니다.  'Header, Footer, Aside 등 공통되는 부분이 있다면 하나를 만들고 돌려쓰자.' 단순하죠? JSP 액션태그인 include tag 에 비해서는 아래와 같은 장점이 있습니다. SP include 태그와의 비교재사용: JSP include 태그는 코드 재사용을 지원하지만, Tiles는 보다 구조화된 방식으로 전체 페이지 레이아웃을 관리합니다.유지 보수: include 태그를 사용한 재사용은 관리 포인트가 분산되어 유지 보수가 어려울 수 있습니다. 반면 Tiles는 중앙에서 레이아웃을 관리하여 유지 보수를 간소화합니다. (til..
Java 프로젝트를 기준으로 MVC패턴에서 Model1 방식은 컨트롤러와 뷰 코드도 합쳐져 있는 구조이고, Model2 방식은 아래와 같이 컨트롤러는 서블릿으로 구현하고 뷰는 JSP 로 따로 구현되어 있습니다.  이와 같은 방식은 모든 컨트롤러가 디스페처 기능을 갖고 있어야하기 때문에 비효율적입니다.  그렇다면 Dipatcher 와 Cotroller 기능을 분리해보면 되지 않을까요?  그렇게 나온 방식이 프론트 컨트롤러(dispacher 역할만 하는)를 사용하는 방식입니다. 위 그림과 같이 포워딩 기능만 해주는 디스페처와 컨트롤러들을 나누는것만으로 여러 이점을 가질 수 있게 됩니다. 유저에게 받는 모든 인풋을 프론트 컨트롤러가 받아주다 보니 컨트롤러는 getParameter 같은 서블렛의 기능을 쓸 필요..
스프링 프레임워크의 주요 특징은 무엇인가? 를 얘기하면 빠지지않게 나오는것 중 하나인 관점지향프로그래밍(Aspect Orient Programing)에 관한 글입니다. 바로 들어가죠. AOP에서  말하는 Aspect 란? 위 그림에서 사용자, 개발자, 운영자는 각각 자기만의 관점이 있습니다. 여기서 사용자의 관점이 주 업무로직이 되고, 개발자&운영자가 원하는 부분은 사이드적인 부분이라 볼 수 있겠죠. 이처럼 프로그램을 만들며 사용자가 요구한 로직 뿐아니라, 개발자나 운영자에게 필요한 로직도 만들어야 하는데 '관점 지향 프로그래밍'에서 '관점(Aspect)'은 이러한 부분들을 말합니다.즉 이러한 '코어 업무 외 의 업무들을 주업무 로직과 어떻게 분리하고, 결합시킬것인가' 에 대한 방법론이 AOP 라고도 말..
스프링을 배우다보면 XML 파일로 설정할 일이 상당히 많습니다. 요즘은 Java configuration 이 트랜드라지만 현업에서는 아직도 XML설정이 많이 쓰이고 있기에 결국 둘다 알고있어야 하기에 스프링 XML 설정 방법을 정리해둡니다. 2가지 설정 방법의 예시는 뉴렉처님이 강의에서 사용하셨던 이미지 한장으로 확실히 익힐 수 있습니다. (코드블록에 적어봤는데 뉴렉처님의 강의 사진 보다 확 와닿는 느낌이 없었습니다..) XML Configuration & Java Configuration 코드 예시 위 xml 내용과 아래 java 클래스는 완전히 같은 역할을 합니다. 1. @Configuration 어노테이션은 스프링에게 설정을 위한 클래스임을 알려주는 어노테이션입니다. 2. @ComponentScan..
스프링 프레임워크는 XML파일을 조작하는 방식에서 코드에 Meta Data(Annotation) 를 심고 그걸 스프링이 읽는 형식으로 발전하였습니다. 왼쪽 그림에서 처럼 XML 파일에 길게 써야 했던 설정 방법이 @Autowired 를 (비롯한 @Component 하위 어노테이션)을 달아주는 방식으로 간단하게 바뀌었습니다. 주의할점은 어노테이션 방식을 사용할때는 @Component annotation의 하위 어노테이션들을 사용해서 객체를 생성하기 때문에 를 설정파일에 써줘야 스프링 프레임워크가 어노테이션을 인식할 수 있다는 점입니다. 그렇다면 @Autowired 어노테이션은 ‘무엇을 기준’으로 자동으로 DI 해줄까요? 바로 자료형을 기준으로 DI 해줍니다. 애매할 경우 아래 예제처럼 bean에 id를 추..
스프링 게시판 첫글은 DI 와 IOC 에 관한 내용을 정리해 볼까 합니다. 스프링 프레임워크 툴을 제공하는 Spring.io 홈페이지에서도 스프링 소개 첫줄에 DI를 언급합니다. 그만큼 스프링에서는 중요한 개념입니다. 그럼 바로 들어가겠습니다. DI(Dependency injection) 란? Dependency injection 을 이해하기 이해하기 위해서는 우선 Dependency 가 무엇인지 부터 알아야겠죠? Dependency, 한국어로 종속성이란 의존성은 하나의 객체가 다른 객체의 기능에 의존하는 관계(다른 클래스의 객체나 메소들르 사용한는) 관계를 말합니다. DI에는 직접 객체를 생성해서 자신이 사용하는 Composition has a (일체형) 관계와 외부에서 생성한 객체를 사용하는 Asso..
안녕하세요. 가위바위보 프로그램 만드는것도 어렵던 코린이는 어느새 신입 개발자가 됐습니다. 스프링 카테고리는 유튜브 뉴렉처님의 스프링 강의를 보며 스프링을 제대로 공부하는것을 목표로하기 위해 만들었습니다. 강의를 보며 배운점들을 제가 소화한 만큼 깔끔히 정리하여 기록해 보고자 합니다.
· Java
형변환이란 자료형을 변환 시킨다는 의민데 그런만큼 자료형에 대해서는 잘 알고있어야 활용이 가능합니다. 아래는 Java의 원시 자료형(primitive data types) 을 정리해 둔 표입니다. 형변환의 종류 Java에서 형변환은 2가지 종류가 있습니다. 바로 묵시적 형변환과 명시적 형변환이죠. 1. 명시적 형변환(강제 형변환) 명시적 형변환을 하는 방법은 간단합니다. 아래 예시 코드와 같이 변수에 담기전 ()괄호를 열고 안에 변환하려는 자료형을 적어주면 됩니다. double d = 85.4; int score = (int) d; // double에서 int로 명시적 형변환 System.out.println(score); 이렇게 명시적 형변환을 할 경우 큰 데이터 타입을 작은 데이터 타입으로 변환할 때..
· Java
상수와 리터럴. 저만 햇갈리는게 아닌지 흔히 같이 언급되는 개념이라고 합니다. 그래서 정리해 봤습니다. 상수 (Constant) 상수는 프로그램 실행 도중에 그 값이 변경되지 않는 변수를 말합니다. Java에서 상수를 선언할 때는 final 키워드를 사용합니다. final로 선언된 변수는 값을 한 번 할당받으면 그 이후에는 값을 변경할 수 없습니다. 상수의 이름은 보통 대문자로 표기하며, 여러 단어가 결합된 경우에는 단어 사이를 언더스코어(_)로 연결합니다. final int MAX_WIDTH = 1920; final int MIN_HEIGHT = 1080; 리터럴 (Literal) 쉽게 생각하면 우리가 프로그래밍 할 때 문자료 표현된 데이터가 리터럴이라고 생각할 수 있다. 위 그림에선느 '자료형을 기반..