전체 글
-
[Java]람다식(Lambda expression)이란?Java 2022. 1. 17. 00:01
우선 자바에는 큰 변화가 두 번 있었는데 처음은 이전 시간에 다루었던 JDK1.5부터 추가된 제네릭스의 등장이며 또 한 번은 JDK1.8부터 추가된 람다식(Lambda expression)의 등장입니다. 자바는 객체지향 언어입니다. 하지만 람다식을 활용한다면 기존의 자바를 거의 변경하지 않고 함수형 언어의 기능까지 갖추게 해 줍니다. 람다식(Lambda expression)이란? 람다식(Lambda expression)은 메서드를 하나의 '식(expression)'으로 표현한 것입니다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환 값이 없어지므로, 람다식을 '익명 함수'라고도 합니다. '식(expression)'을 사용하여 하나의 메서드 인터페이스를 나타내는 명확하고 간결한 방법을 제공합니다. 람다..
-
RDBMS와 NoSQL 정리(+ 차이점, 언제 무엇을 사용해야 할까)CS/데이터베이스 2022. 1. 16. 00:01
RDBMS란? RDBMS란(Relational DataBase Management System)의 약자로 관계형 데이터베이스를 수정하고 관리할 수 있는 소프트웨어입니다. 관계형 데이터베이스란 무엇일까요? 데이터를 열(Column)과 행(row)으로 구성하여 하나 이상의 테이블로 정리하며 고유 키(Primary key)가 각 행(row)을 식별합니다. 또한 이러한 테이블끼리 서로 연관되어 있어 효율적으로 데이터를 저장, 구성 및 관리할 수 있습니다. 또한 사용자가 관계형 데이터 베이스를 사용하기 위해 표준 검색 언어인 SQL을 사용하여 데이터를 조회, 수정 등을 할 수 있습니다. MSSQL, MySQL, Oracle이 RDBMS의 몇 가지 예시입니다. 위의 그림은 관계형 데이터베이스의 학생 릴레이션의 예시..
-
클린 코드 - 의미 있는 이름클린 코드(Clean Code) 2022. 1. 15. 00:01
소프트웨어에서 이름은 어디에서나 쓰입니다. 변수와 함수, 인수와 클래스 패키지 나아가 소스코드까지 여러 가지 도처에 사용됩니다. "의도를 분명하게 이름을 지어라" 라고 말하는 건 쉽습니다. 의미 있고 좋은 이름을 짓기 위해서는 어떻게 해야할까요? 존재 이유, 수행 기능, 사용 방법에 대한 질문에 답할 수 있어야 합니다. 1. 그릇된 정보를 피하라 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하면 안 됩니다. 여러 계정을 그룹으로 묶을 때 실제 List가 아니라면 accountList라고 명명하면 안 됩니다. 프로그래머에게 List라는 단어는 특수한 의미이며 실제 자료구조가 List가 아니라면 그릇된 정보를 제공합니다. 또한 특정 문화에서만 사용하는 언어보다는 모두가 아는 단어를 사용하는 게 ..
-
클린 코드 시작클린 코드(Clean Code) 2022. 1. 14. 00:01
항상 개발을 할때는 기능을 우선을 코딩을 하였고 주로 혼자 개발을 하였기 때문에 함수화 객체화 가독성은 저에게 의미없고 시간만 걸릴 뿐이였습니다. 하지만 그 결과로 예전의 코드를 이해하기는 어려웠고 알고리즘 문제를 풀다가 에러가 발생해도 어디서 에러가 발생한지 찾기도 어려웠습니다. 따라서 클린 코드에 관심을 가지게 되었으며 어떻게 코드를 작성해야 가독성이 높고 유지보수하기 좋을지에 대해 고민해보기 시작했습니다. 현재 네이밍 컨벤션과 의미있는 변수명 함수명을 최대한 한가지일만 하는 함수를 짧게 작성하는 연습을 하고 있지만 잘 하고 있는 것인지 판단하기가 힘들었기 때문에 이미 개발자들 사이에서는 유명한 "클린 코드" 라는 책을 읽으며 내용을 정리해보고자 합니다.
-
Thymeleaf란? ( + Thymeleaf 사용법, 문법 맛보기)Spring Framework 2022. 1. 13. 00:01
스프링 부트를 시작하기 위해 Thymeleaf라는 템플릿 엔진 의존성을 추가하였습니다. 또한 템플릿 엔진에 대해서 알아보았고 Spring Boot가 자동 환경 설정을 지원하는 Thymeleaf, Mustache, FreeMarker, Groovy에 대한 비교도 해보았습니다 https://junuuu.tistory.com/55?category=968779 템플릿엔진이란? 이전에 Spring Initailzr를 통하여 스프링 부트를 시작할 때 Dependencies 부분에 Thymeleaf라는 템플릿 엔진을 추가하여 사용했습니다. 또한 동적인 페이지를 만들기 위해 Thymeleaf라는 템플릿 엔진을 사용 junuuu.tistory.com https://junuuu.tistory.com/60 ThymeLeaf..
-
ThymeLeaf vs Mustache vs Groovy vs FreeMarkerSpring Framework 2022. 1. 12. 00:01
저번 시간에는 템플릿 엔진에 대해서 알아봤습니다. https://junuuu.tistory.com/55?category=968779 템플릿엔진이란? 이전에 Spring Initailzr를 통하여 스프링 부트를 시작할 때 Dependencies 부분에 Thymeleaf라는 템플릿 엔진을 추가하여 사용했습니다. 또한 동적인 페이지를 만들기 위해 Thymeleaf라는 템플릿 엔진을 사용 junuuu.tistory.com 스프링부트는 아래와 같은 템플릿 엔진의 자동 환경 설정을 지원한다고 공식문서에 나와있습니다. 4가지의 템플릿 엔진 중에 저희는 Thymeleaf를 선택하여 사용하였습니다. 그러면 4가지의 템플릿 엔진은 어떤 차이점이 있고 어떤 템플릿 엔진을 사용하는 게 좋을까요? 각 템플릿 엔진의 빌드 크기 ..
-
[Java] 내부 클래스란?Java 2022. 1. 11. 00:01
내부 클래스(Inner Class)란? 클래스 안에 또 다른 클래스를 구성하는 것을 말합니다. class OuterClass { class InstanceInnerClass{ //Inner Member class //static member 선언 불가능 } static class StaticInnerClass{ //static class // instance member와 static member 선언 가능 int data1; static int data2; } void func() { class LocalInnerClass{ //Inner Local class int data; } } } OuterClass A = new OuterClass(); //외부 클래스 생성 A.InstanceInnerClas..
-
테스트코드(Test Code)란?테스트코드(Test Code) 2022. 1. 10. 00:01
테스트 코드(Test Code)란? Test는 시험, 검사이라는 의미로 실제 코드를 검사하기 위한 코드입니다. 작성한 프로그램이 문제가 없는지 확인하기 위해서 사용합니다. 많은 개발자분들이 테스트 코드의 중요성을 강조하고 있는데 테스트 코드를 왜 사용할까요? 개발자는 기능을 구현하는 게 중요하지만 이 기능이 잘 동작하는지 검증하기 위해서는 테스트가 필수적입니다. 기존에 테스트를 하는 방식은 다양한 use case에 맞추어 단순노동을 하면서 입력을 하며 콘솔로 찍히는 로그가 정상인지 아닌지 확인하며 진행했습니다. 이러한 방법들은 단점들이 존재합니다. 기능을 재 테스트하거나 요구 상황이 변경되면 use case를 다시 작성하고 테스트를 반복해야 합니다. 프로그램의 규모가 클 때 어디서 에러가 발생했는지 확인..