전체 글

전체 글

    애플리케이션의 종류

    애플리케이션의 종류

    반응형 웹 화면 크기에 따라 홈페이지의 크기가 변화하는 웹사이트 적응형 웹 정해진 화면 크키가 기기에 맞게 홈페이지를 따로 제작하는 웹사이트 네이티브 앱 - 앱 각 운영체제에 맞는 앱을 개발 안드로이드 - Java, Kotlin IOS - Swift, Objective-C 크로스 플랫폼 - 앱 같은 소스코드로 안드로이드, IOS 모든 환경에서 작동할 수 있는 앱 Flutter, React native 웹 앱 - 웹사이트 스마트폰의 기종이나 기기에 상관없이 모든 단말기에서 같은 콘텐츠를 볼 수 있게함 모바일 앱과 비슷한 UI/UX를 지원하는 웹사이트 하이브리드 앱 - 웹사이트 네이티브 or 크로스 플랫폼 + 웹 뷰 PWA(Progressive Web Apps) - 웹사이트 웹 앱이지만 스마트폰과 PC의 바..

    불변성(Immutable)과 빌더 패턴(Builder Pattern)에 대해

    불변성(Immutable)과 빌더 패턴(Builder Pattern)에 대해

    우리는 왜? 불변성을 지키면서 코딩을 해야할까? 내가 알고있는 불변성이라는 개념은 'final' 불변객체는 재할당은 가능하지만, 한번 할당하면 내부 데이터를 변경할 수 없는 객체 class ImmutablePerson { private final int age; private final int name; public ImmutablePerson(int age, int name) { this.age = age; this.name = name; } } private final로 변수를 선언했기 때문에 외부에서 당연히 접근 불가 final로 했기 때문에 setter도 사용 불가능 그럼 이 불변성을 지키는것의 장단점은 무엇일까? 장점 객체에 대한 신뢰도가 높아진다 => 객체가 한번 생성되어서 그게 변하지 않는다..

    객체 지향 프로그래밍

    클래스 멤버 변수 vs 인스턴스(객체) 멤버 변수 public class Person { //클래스 멤버 변수 static String org = "jiwon"; //인스턴스 멤버 변수 String name; int age; boolean isHungry; void eat() { System.out.println("냠냠"); isHungry = false; } void work() { System.out.println("열심히.."); isHungry = true; } } public class PersonTest { public static void main(String[] args) { //지금 11줄에서 객체를 만드는 과정이 있기 전에 클래스 멤버 변수를 수정한 것임 // Person.org = "..

    땅지원의 포트폴리오

    보호되어 있는 글입니다.

    [Elastic Stack] 검색어 자동완성 구현(Spring Data Elasticsearch)

    [Elastic Stack] 검색어 자동완성 구현(Spring Data Elasticsearch)

    이번엔 평소에 해보고싶었던 ElasticSearch를 이용하여 검색어 자동완성 구현을 해보려고 한다. 웹 개발을 한다면 검색 엔진이 필수인데 이런 기능을 개발한다니 너무 재밌었다 기존에 이런 기능을 구현한 적이 있었는데 SQL의 Like 써가면서 했는데 데이터가 많아지다보니 아무리봐도 이건 아닌거같아서 기능을 찾던 도중 ElasticSearch를 찾았고 SpringBoot로 개발하다보니 Spring Data ElasticSearch가 있다는걸 알아서 바로 적용해봤다. ElasticSearch 설치 일단 로컬이나 ec2에 ElasticSearch를 설치해야한다. 난 ec2를 사용하고 있으니 편리한 Docker를 이용해서 설치했당 docker pull docker.elastic.co/elasticsearch..

    [JUnit] JUnit에 대해

    단위 테스트(Unit Test) 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트 여기서 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메소드 즉,"어떤 기능이 실행되면 어떤 결과가 나온다"를 테스트함 단위 테스트는 해당 부분만 독립적으로 테스트하기 때문에 어떤 코드를 리팩토링하여도 빠르게 문제 여부를 확인가능 실무에서는 단위 테스트를 선호하며, 요즘 많이 사용되는 TDD(Test-Driven Development, 테스트 주도 개발) 에서 얘기하는 테스트도 단위 테스트를 의미한다. 우리는 우리가 작성한 테스트 코드를 수시로 빠르게 돌리면서 문제를 파악할 수 있다. 통합 테스트(Integration Test) 통합 테스트(Integration Tes..

    [SpringBoot] 자주쓰는 @(어노테이션) 익히기

    [SpringBoot] 자주쓰는 @(어노테이션) 익히기

    ResponseEntity는 뭘까? Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스 HttpEntity 클래스를 상속받아 구현한 클래스가 RequestEntity, ResponseEntity 클래스이다. ResponseEntity는 사용자의 HttpRequest에 대한 응답 데이터를 포함하는 클래스이다. 따라서 HttpStatus, HttpHeaders, HttpBody를 포함한다. 단순히 데이터만을 보내기보단 상태와 메세지 데이터까지 모두 보낼 수 있음 @GetMapping(value = "/user/{id}") public Res..

    [SonarQube/Jenkins] SonarQube + Jenkins + GitLab 연동하기

    [SonarQube/Jenkins] SonarQube + Jenkins + GitLab 연동하기

    SonarQube 정적 코드 분석 도구 실제 실행 없이 컴퓨터 소프트웨어를 분석 sudo ufw allow ssh >> 방화벽 설정 >> 간편설치 docker pull sonarqube docker run -d -p 8082:9000 --name sonarqube sonarqube >> Docker-compose를 이용하여 postgresql와 같이 설치 더보기 1.Docker-compose 설치 아래 명령어로 docker-compose를 설치한다. sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compos..