요즘 You don't know JS 라는 책을 보고있는데 배열 생성 방식에 대한 부분에 지면을 꽤나 할애하고있어 해당 부분에 대한 정리와 내 생각을 포스팅하고자한다. 1. 배열생성자바스크립트에서 배열을 생성하는 방식은 2가지가 있다. 여타 객체를 생성하듯 생성자를 사용할 수도 있고 언어차원에서 제공하는 리터럴 방식을 사용할 수도 있다. 보통은 타이핑 양도 적고, 가독성에서도 우월하고 성능에서까지 좋은 리터럴 방식을 권장하고, 사용한다. 개인적으로 리터럴 표현이 아닌 생성자를 사용해야할 경우는 아무리 생각해도 떠오르지않는다. var arr1 = []; var arr2 = new Array(); IDE 마저도 리터럴로 바꾸라고 한다. 2. 배열 생성자이미 리터럴의 우수함때문에 생성자를 사용할 이유가 없지만..
자바를 이용해 외부 자원에 접근하는 경우 한가지 주의해야할 점은 외부자원을 사용한 뒤 제대로 자원을 닫아줘야한다는 점이다. public static void main(String[] args) { FileInputStream fis = null; try{ fis = new FileInputStream(""); }catch(IOException e){ }finally { fis.close(); } } 이정도로 끝나면 좋겠지만 문제는 저 close() 메서드도 Checked Exception 인 IOException 을 던지므로 이런 코드가 나타난다. public static void main(String[] args) { FileInputStream fis = null; try{ fis = new File..
1. JSON.stringify(), JSON.parse()자바스크립트 객체를 JSON화 하는 방법에 대해 알아보자. 가끔 자바스크립트 객체와 JSON의 차이를 헷갈려하는 분들을 볼 수 있는데 JSON(JavaScript Object Notation)은 자바스크립트의 리터럴 표현식을 적극적으로 활용해 간단한 포맷으로 데이터를 구분할 수 있는 문자열 포맷일뿐 크게 대단한게 아니다. POJO(Plan Old Java Object) 처럼 용어를 참 잘 지은것같다. JSON이 자바스크립트 문법을 기반으로 하고있기때문에 JSON 형태로 변경하는건 어렵지않다. 더군다나 최근의 브라우저들은 전부 내장 객체로 JSON변환을 지원한다. 내장객체명은 JSON이다. var target = { age: 29, name: "L..
요즘 테스트와 nodejs에 관심이 많아지면서 두 개를 섞은 nodejs에서 테스트하는것에 대해 포스팅을 해보고자한다. 아주 간단한 내용에 대해 나름 자세하게 포스팅을 할 예정이다. 이런식으로 작성하는 이유는 이런 포스팅을 내가 찾지못해서 꽤 삽질을 했기때문이다.nodejs에 대해서는 이해도가 충분치않은 상태이기때문에 중간 설명에 잘못된 설명이 있을수 있다. 일단 nodejs가 설치되어있어야한다. https://nodejs.org/ko/nodejs를 설치했으면 테스트 예제를 작성할 프로젝트를 생성하자. 나는 test-environment 라는 이름으로 생성했다. 생성한 프로젝트로 들어와서 npm init 커맨드로 node 프로젝트임을 초기화하면 된다. mkdir test-environment && cd ..
얼마전 사내에서 작업했던 내용이다. 간단한 코드긴하지만... 코드는 각색해서 해당 내용을 포스팅하고자 한다. 1. Utils 클래스1-1. Utils 클래스 생성 요구사항 * 현재 전화번호, 주민번호, 카드번호 데이터는 - 없이 순수 숫자로만 저장되어있다. * 해당 데이터를 노출할때 -를 추가하고싶다. 음...뭐 딱히 어렵지 않은 내용이다. 어떤 내용으로 작업할지 고민을 했고, 특정 상태에 얽매이는게 아니라 인자로 넘어오는 값의 양식만 변경하면 되니 정적 메서드로 만들어도 충분하다고 판단했다. 그렇게 FormatUtils 클래스가 추가됐다. class FormatUtils { private static final String TEL_NO_PATTERN = "(02|0[\\d]{2})([\\d]{3,4})..
1. Groovy 앞선 포스팅에선 jUnit으로 테스팅하는걸 소개했었다. 이번포스팅에서는 또다른 JVM언어인 Groovy로 테스트를 해보겠다. Groovy로 작성하는 이유는 가독성때문이다. 테스트 코드는 실제 프로덕션 환경에서 구동되는게 아니기때문에 성능 이슈는 비교적 신경쓸이유가 적은데, 그루비는 자바에 비해 간결한 문법(아주 별거 아니지만 기본 접근제어자가 public이기때문에 코드에 public을 적을 필요가 없다.)과 최신기술들을 많이 지원해주고있어 테스트의 가독성을 끌어올릴 수 있다. 포스팅을 하고있는 본인 역시 그루비라는 언어를 잘 안다거나 그루비로 테스트를 많이 작성해본 상태는 아니다. 블로그에 글을 씀으로서 한번 시작해보려고 하는 1인에 불과하다. 일단 한번 해보자. dependencies..
1. jUnit Test자바로 테스트코드를 짤때 가장 유명한 프레임워크는 jUnit이다. 먼저 테스트 코드를 한번 만들어보자. dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' }jUnit 의존성을 추가해주자(아주 간단한거지만 처음으로 gradle을 사용해본다!). 아주간단한 계산기 클래스를 만들어보자. 가장 처음 만들건 더하기 연산이다. 테스트코드부터 만들어보자. @Test public void plus() throws Exception { // given Calculator calculator = new Calculator(); // when int result = calculator.plus(2, 5); // then..
요즘 최범균님의 DDD start! 라는 책을 보며 DDD(Domain Driven Design)에 대해 입문하고있다. 책을 보며 공부한 내용을 정리하는 포스팅이다. 아마 이번 포스팅은 얼마전 작성한 DTO와 VO 포스팅과 유사한 내용이 상당히 많을 것 같다. 얼마전 잡은 개념이라 책보면서 이해하기에도 어려운부분이 없어서 다행이었다. 1. Domain 개발을 하다보면 도메인이라는 단어를 참 많이 듣게된다. 특히 '도메인 객체' 란 표현으로 접하게되는데 도메인 객체란 내가 개발하고자 하는 영역을 분석하고, 그 분석의 결과로 도출된 객체들을 일컫는다. 예를들어 쇼핑몰을 만든다고 하자. 쇼핑몰의 주된 기능은 상품 구매일것이다. 상품구매의 순서는 보통 이렇다. * 상품을 등록한다. * 회원이 상품을 구매한다. ..
코드를 짜다보면 복잡한 분기문이 필요할때가 있다. 복잡한 분기문을 좋아하는 개발자는 없지만 복잡한 비즈니스로직을 요구한쪽이 문제라고 생각하며 자신의 코드를 용서하는경우가 많게된다. 하지만 각종 조건들로인해 분기문이 많아지고 그 깊이가 깊어지면 추후 다른 동료 개발자는 물론이고, 그 코드를 직접 상대한 스스로조차 이해하기 힘들정도의 코드가 탄생하게된다. 이번 포스팅에서는 대단한 기법이나 어려운 기법은 아니지만 소소하게 좀 더 이해하기 쉬운 분기문을 작성하는법을 알아보자. 코드는 자바로 작성되지만 분기문은 자바에만 존재하는 개념은 아니므로 이해하기 어렵진 않을것이다. 1. 불필요한 else 문이런 코드는 실제로 쉽게 만날 수 있다. private static boolean isSenior(int age){ ..
처음 자바를 배울때 인터페이스, 추상클래스, 구현클래스에 대해서 각각 이렇게 배우고, 암기하게된다. * 인터페이스 : 메서드의 몸통을 가질 수 없음. 추상메서드와 상수만 보유가능.* 추상클래스 : 구현메서드와 추상메서드를 모두 가질 수 있음. 단독으로 객체생성 불가능.* 구현클래스 : 구현메서드만 가질 수 있음. 인터페이스를 구현하거나 추상클래스를 상속받은 경우 해당 추상메서드를 반드시 구현해야 함. 자바를 처음 배울때는 보통 추상 클래스 혹은 구현 클래스를 이용해 중복 코드를 상위 클래스로 뽑아내고 하위 클래스들에서 재사용하는것에 큰 매력을 느끼게되고, 구현부따위없는 인터페이스에는 그다지 매력을 못느끼는 경우가 많다. 코드를 재사용할 수 있는것도 아니고 그저 메서드 시그니처만 강제하는게 무슨 의미가있다..
- Total
- Today
- Yesterday
- JPA
- db
- 정규표현식
- java
- servlet
- Git
- OOP
- clean code
- http
- toby
- generics
- EffectiveJava
- mariadb
- code
- JavaScript Core
- Spring
- frontend개발환경
- Design Pattern
- Kotlin
- Jackson
- MySQL
- go-core
- backend개발환경
- spring cloud
- DesignPattern
- TEST
- javascript
- frontcode
- programming
- java8
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |