일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- js await
- jpa 플러쉬
- spring gradle 모듈
- spring 모듈 프로젝트
- JPA준영속 상태
- js fetch
- 코틀린
- js async await
- springboot gradle 모듈 프로젝트
- JS
- JPA플러쉬
- 코프링
- javascript api 호출
- jpa 플러시
- jpa준영속
- gradle 모듈 프로젝트
- JPA
- javascript async await
- Flutter
- 스프링부트
- springboot 모듈
- JPA플러시
- javascript async
- js api 호출
- 코틀린 클래스
- jpa 영속성
- ja async
- javascript fetch
- 준영속상태
- JavaScript
- Today
- Total
목록전체 글 (54)
매일 한줄 코딩
8. Properties and Fields 10. 오브젝트 키워드 - Object Expressions and Declarations 1. 오브젝트 - Object 2. 객체 표현식 (Object Expressions) 2-1. 객체 표현식 상속 2-2. 객체 표현식 상속 없는 경우 2-3. 객체 표현식 제약 사항 2-4. 객체 표현식 특징 3. 객체 선언 (Object declarations) 3-1. 객체 선언 문법 4. 동반자 객체 (Companion Object) 5. 차이점 & 특징 정리. 1. 오브젝트 - Object 👉 Object 용도 어떤 class에서 조금 변경된 객체를 생성 할 때 새로운 subclass의 명시적인 선언 없이 객체 생성 👉 3가지 요소. Object Expressio..
9. 데이타클래스, 중첩클래스 (Data, Nested classes) 1. Data 클래스1-1. 기본1-2. 자동생성 메서드1-3. 의미있는 생성 조건1-4. 기본 특징 및 설정1-5. 복사1-6. Destrcturing Declarations1-7. data 클래스 없이 간단한 값 뽑기, Pair, Triple2. 중첩,내부 클래스 (Nested Classes, Inner Class)2-1. 중첩클래스 (Nested Classes)2-2. 내부클래스 (Inner Class) 1. Data 클래스1-1. 기본용도 : 데이터는 보유하지만 아무것도 하지 않는 클래스코틀린에서는 data class 를 제공해준다.data class User(val name: String, val age: Int) 1-2. ..
8. Properties and Fields1. 프로퍼티 선언1-1. 프로퍼티 문법1-2. 프로퍼티 getter setter 재정의.1-3. var (mutable) 프로퍼티1-4. val (read-only) 프로퍼티1-5. 프로퍼티 접근제한자(가시성)2. Fields2-1. Backing Fields 2-2. Backing Fileds 생성 조건2-3. Backing Properties 생성 방법2-4. const ( Compile-Time Constants ) 생성 조건2-5. Late-Initialized Properties 1. 프로퍼티 선언자바에서는 프로퍼티를 지원하지 않음 ( getter, setter ) 그래서 lombok을 이용하였다.코틀린에서는 기본으로 지원해준다. 프로퍼티 선언시 구분..
7. 상속 - Inheritance1. 상속 - 최상위 클래스 Any2. 상속 - 특징3. 상속 - open4. 오버라이딩4-1. 메소드 오버라이딩4-2. 프로퍼티 오버라이딩4-3. 오버라이딩 규칙5. 추상클래스 1. 상속 - 최상위 클래스 Any클래스에 상위타입을 선언하지 않으면 Any가 상속됨코틀린의 최상위 클래스는 Any이다.class Test1 // 암시적인 Any상속 class Test2 : Any() // 명시적인 Any상속 // java의 extend 대신 콜론(:) 을 쓴다. Any는 java.lang.Object와는 다른 클래스이다.equals(), hashCode(), toString() 만 있다.package kotlin public open class Any { public open..
6. 클래스 - Class목차1. 클래스 - Class2. 기본생성자 (Primary Constructor)2-1. 기본생성자 - init2-2. 기본생성자 - 프로퍼티3. 보조생성자 (Secondary Constructor) 4. 생성된(generated) 기본생성자5. 인스턴스 생성!6. 기타 - 클래스안에 포함될 수 있는것들.. 1. 클래스 - Class클래스는 class 키워드로 선언클래스 이름, 해더(매개변수, 기본 생성자 등), 바디(중괄호) 로 구성됨//키워드 //이름 //헤더 class TestClass(data: Int) { //바디 } 해더와 바디는 옵션이고, 바디가 없으면 중괄호 { } 생략 가능class TestClass 2. 기본생성자 (Primary Constructor)클래스별..
5. Packages, Return and Jumps목차1. 패키지 Package1-1. 패키지 특징1-2. 기본패키지1-3. Import 특징2. Return and Jumps2-1. 3가지 Jump표현식2-2. Label로 Break and Continue2-3. Label로 Return 1. 패키지 Package1-1. 패키지 특징소스 파일은 패키지 선언으로 시작모든 콘텐츠(클래스, 함수, ....) 등은 패키지에 포함된다.패키지를 명세하지 않아도 되며, 명세하지 않으면 이름 없는 기본 패키지에 포함됨.package com.kotlin fun aaa() {} class Abc {} fun main(args: Array) { com.kotlin.aaa() com.kotlin.Abc() } 1-2. 기..
4. 흐름 제어 - Control Flow목차1. if-else 문1-1. 일반 if문 , if else 문1-2. 값을 반환하는 if else 문1-3. 기타 특징2. when 문2-1. 기본 when문.2-2. else가 필수인 when문2-3. else가 생략되어도 되는 when문2-4. 여러 조건이 들어가는 when문2-5. 조건문에 함수나 식을 사용하는 when문2-6. range나 collection에 in이나 !in(not in)으로 범위등을 검사할 수 있는 when문2-7. is나 !is를 이용하여 타입도 검사할 수 있는 when문2-8. when은 if else if 체인 구문을 대체 할 수 있다. 3. For Loop문 (반복문)3-1. 기본 For Loop문3-2. For문을 지원하는..
3. 기본 타입 - Basic Types목차.1. 기본타입2. 숫자3. 리터럴 (Literal)4. Underscores in Numeric literals (since 1.1)5. Representation6. Explicit Conversions7. 배열7-1. 배열 특징7-2. 배열 생성7-3. 특별한 Array 클래스 (Primitive 오버헤드 없애는 배열)8. 문자열9. 문자열 리터럴 1. 기본타입코틀린에서 모든 것은 객체임.모든 것에 멤버 함수나 프로터피를 호출 가능하다는 의미에서...(자바에서는 프리미티브타입과 레퍼런스타입이 분리됨) 2. 숫자Java의 숫자형과 거의 비슷하게 처리.코틀린 = Number클래스Java = primitive Type에 직접 접근 할 수 없음. 3. 리터럴 (L..
2. 기본 문법 - Basic Syntax목차.1. 패키지 정의1-1. 패키지 정의는 파일 최상단에 위치.1-2. 디렉터리와 패키지를 일치시키지 않아도 됨.2. 함수 정의2-1. 함수는 fun 키워드로 정의.2-2. 함수 몸체가 식(Expression)인 경우 return 생략가능. 2-3. 리턴 할 값이 없는 경우 Unit(Object)으로 리턴 함. 3. 지역 변수 정의3-1. val: 읽기 전용 변수3-2. var: Mutable 변수4. 주석4-1. 한줄 주석4-2. 여러 줄 주석5. 문자열 템플릿 (문자열 보간법)6. 조건문7. nullable8. 자동 타입 변환9. 반복문 while10. when expression11. ranges ( 범위 체크 )11-1. In 연산자를 이용해서 숫자의 범..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/behldL/btrD2HoMbzj/Kv6EaY98x92nw6AIItWz21/img.png)
안드로이드 프로그래밍이 아닙니다. 코틀린 + 스프링부트 (코프링)을 설정하는 방법을 설명합니다. 먼저 자바(JDK)가 설치 되어있어야 한다. 그다음, 인텔리제이를 설치 했다는 가정하에 진행. ( 인텔리제이를 추천합니다. 코틀린은 젯브레인에서 개발하였기에 인텔리제이와 아주 찰떡입니다.) 인텔리제이에 코틀린 프로젝트 생성하기. 만들어진 파일에 아래와 같이 입력 후 저장 fun main(args: Array){ println("Hello World~~~") } Run 방금 만든 파일 선택 실행되면 콘솔창에 입력된 메세지 잘 떴는지 확인.
코틀린을 왜 사용할까? 간결한 문법 안전한 처리 (NPE) JVM , 자바와의 호환 간결한 문법 자바의 getter, setter, equals 등.. 데이터클래스를 만들때 간결하게 처리. 람다식도 간결화. 안전한 처리 var output: String output = null // Compilation Error val name: String? = null // Nullable type println(name.length()) // Compilation Error fun calculateTotal(obj: Any) { if (obj is Invoice) obj.calculateTotal() } // auto cast 캐스팅 오류 없애줌. JVM, 자바와의 호환 소스를 자바와 코틀린 둘다 사용이 가능하다.
💡CQRS란? CQRS는 데이터 변경과 조회의 책임을 나누는 것. (명령과 조회의 책임을 분리 - Command and Query Responsibility Segregation) 명령 ⇒ Command (데이터 변경) 조회 ⇒ Query (데이터 조회) 💡예를들어보자. 명령(Command : 데이터변경) → 회원 데이터의 회원상태를 변경. 조회(Query : 데이터조회) → 회원을 조회하는 것. 위 두가지에서 사용되는 모델은 각각의 모델로 분리하여야 한다. ⁉️만약 분리하지않는다면 ??? 하나의 가정을 잡고 설명하고자 한다. Member라는 모델 객체에서는 변수 name, age, status, date ( 각각 이름, 나이, 상태, 가입일 )가 있다고 가정한다. 회원의 처음 상태는 준회원이라고 가정한..
💡 클린 아키텍처는 로직, 목적 등.. 관심사를 분리하는 것. 관심사에 따라 계층을 나눔. 세부 구현을 염두한 설계가 아닌 도메인 중심으로 설계 내부에 있는 영역이 UI, DB, 인프라 등의 외부적인 것에 의존하지 않도록 설계 💡로직에는 크게 아래와 같이 나뉜다. UI 로직 응용(어플리케이션) 로직 도메인 로직 (비지니스 업무) 로직 인프라(연동) 성 코드 로직 위 4가지의 로직을 바탕으로 각각의 영역으로 나눌 수 있다. 💡크게 영역은 아래와 같다. UI 로직 필수값 검증 ( 프론트단에서 validation 체크 ) 보이거나 / 안보이거나 ( display , display-none 등.. ) 팝업을 띄우거나 / 안띄우거나 등등 의 UI 성 로직 응용 로직 고객이 존재하는지 / 안하는지 돈을 지불 했는지..
💡 아키텍처란? 위키피디아 : 컴퓨터 구조(computer architecture)는 컴퓨터 과학에서 컴퓨터 시스템의 기능(functionality), 조직(organization), 구현(implementation)에 대한 법칙과 방법을 통칭한다 클린아키텍처 : 소프트웨어 시스템의 아키텍처란 시스템을 구축했던 사람들이 만들어낸 시스템의 형태다. Ralph Johnson (GoF) : the important stuff Whatever that is. (중요한것들 뭐든간에) 아키텍처의 구조 요구사항 → 기능 : 기획서, 화면기획서 등 (funtional) → 비기능 : 품질(non funtional) 기능 / 비기능 으로 나뉜다. 상황 일정, 인력 등 모든 것은 절충 (trade off) 모든 결정에는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2O76x/btrorBqAlH5/oArAsL7BLxmLs4EsZBkVD1/img.png)
추상화란? 의도, 프로세스, 특징, 속성 등을 개념적으로 표현한 것을 말한다 → 컨셉화 💡 예제 1) ... ... 예제 2) plus(100); deposit(100); 예제 1 에서 div 태그에 class 속성을 주었다. 차이는 명칭이 red와 warning 이다. red는 경고하기위해 빨간색으로 표시하겠다라는 표현의 정도 → How (어떻게) warning은 경고라는 의도를 표현하는 정도다. → What (무엇을) 예제 2 에서 plus함수와 deposit함수를 호출하는 내용이다. 각각 100이라는 값을 함께 넘겨주고 있다. plus함수는 받은 인자인 100을 더해주겠다는 것으로 보인다 → How (어떻게) deposit함수는 받은 100을 예금해준다는 것으로 보인다 → What (무엇을) 다시말..
앱 출시 후 서비스 하는 기간이 길어질수록 코드 1줄당 새롭게 개발하거나 변경되는 비용도 높아진다. 이미 출시된 서비스에 무언가를 바꿀때 미치는 영향도 때문에 소스를 다 뒤지는 시간이 길어지며, 대부분 그 시간을 할애한다. 그렇기 때문에 서비스하는 기간이 길어질수록 코드를 변경하는 비용은 높아지는 것이다. 그래서 우리는 코드를 추가,수정 할때 위치 혹은 영향도를 찾는 시간을 줄여야 한다. 그것을 자바의 대표적인 특징인 캡슐화로 어느정도 비용을 줄일 수 있다. 먼저, 캡슐화를 들어가기전에 커플링(결합도) 와 응집도에 대해 간단히 알아봐야 한다. 커플링(결합도) 란? 말그대로 A코드와 B코드가 서로 결합되어 있는 정도가 커서 A가 바뀌면 B에도 영향이 있는 경우에 결합도가 높다고 표현한다. 응집도 란? 결합..
프로그래밍 종류 OOP(Object-Oriented Programming) 객체지향 프로그래밍 (데이터 + 함수) FP(Functional Programming) 함수형 프로그래밍 (데이터와 함수를 분리) PP (Procedure Programming) 절차형 프로그래밍 기능(Function)이란? 기능은 입력(In) · 출력(Out) 으로 구성된다. 결국 A라는 기능은 입력과 출력으로 구성된다. 💡 ex) 로그인의 기능에서 사용자가 ID/PW를 입력하게되면, 결과로써 로그인을 시켜주거나, 혹은 로그인이 되지않거나의 출력으로 구성된다. 위의 예시의 IN, OUT은 명시적인 IO 이다. 대표적으로 스프링에서는 controller → service → dao → DB 이러한 절차로 기능이 실행될 것인데 이것..
클린코드를 읽는 이유는 말 그대로 깨끗한 코드를 짜기 위함이다. 그렇다면 "나쁜 코드"는 무엇일까? 사실 정의하기에는 각각 다양한 정의가 나오기때문에 딱 잘라서 말하기 힘들다. 굳이 정의하자면.. 클린코드에서 권장하는 예시들이 있는데 그것들이 나쁜 코드라고 할 수 있을 것 같다. "나쁜 코드"는 내가 이제까지 개발하면서 알게모르게 아니 알면서도 많이 썼던 것 같다. 예전 코드를 돌이켜 봤을때 나는, 컨트롤러에 비지니스 로직을 작성한것도 있고, 불필요한 주석과 로그들, 생각없이 짠 중복된 코딩들 .. 등등이 눈에 보였다. 책에서도 비슷한 내용이 나온다. 처음부터 소위말하는 나쁜코드로 결과물만 바라보고 코딩하게 된다면 처음에는 생산성은 높을 수 있으나, 점점 생산성은 0이 되버리고 만다. 1장은 깨끗한 코드..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/x5Tr0/btrl3LhlvYY/MxyYLlCwiKtQfGIC1oUBf1/img.png)
예전에 스터디할때 PPT만든게 있어서 업로드 하고자 합니다. PPT보단 해당 글이 더 자세히 적혀있으므로, 글만 보고 따라하셔도 됩니다. 먼저 , 젠킨스(Jenkins)란 개발 시 지속적 통합(continuous integration) 서비스를 제공하는 툴 입니다. 기존 배포시에는 여러가지 방식이 있겠지만 대표적으로 2가지 방식은 아래와 같습니다. 1. war파일 배포하여 톰캣 재구동 ( ftp 및 여러가지 방식으로 war를 옮겨서 ) 2. class파일로 컴파일 된 파일을 ftp로 전송하여 톰캣 재구동 이러한 행위들은 배포시 개발자에게 위협요소 및 개발시간에 대한 불필요한 시간낭비 라고 생각합니다. 첫째, 잘못된 파일 및 war를 배포한경우. 둘째, 큰 프로젝트의 루트가 다르지만 같은 클래스명인 경우 ..
자바 ORM표준 JPA 프로그래밍 책으로 시작하고자 한다. http://www.yes24.com/Product/Goods/19040233 자바 ORM 표준 JPA 프로그래밍 - YES24 자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 www.yes24.com 책을 기준으로, github에 챕터별로 정리하여 올릴 계획이다. 계속 github는 열어둘것이고, 추후에 나와같은 JPA를 공부하는 사람들에게 책과 함께보면 더 빠르고 잘 정리할 수 있도록 기록할 것이다.