목록분류 전체보기 (32)
Dev.끄적끈적
pipeline { agent any environment { imagename = "hyunjae92/wepeech" registryCredential = 'dockerhub-Credential' dockerImage = '' } stages { stage('Prepare') { steps { echo 'Clonning Repository' git url: 'git@github.com:hanghae99-6/Back-End.git', branch: 'main', credentialsId: 'github-Credential' } post { success { echo 'Successfully Cloned Repository' } failure { error 'This pipeline stops here....

DTO란? DTO란 Data Transfer Object의 약자로, 계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는 객체이다. 이때, 계층은 Presentation(View, Controller), Business(Service), Persistence(DAO, Repository) 등을 의미한다. DTO는 순수하게 데이터를 저장하고, 데이터에 대한 getter, setter 만을 가져야 한다. 즉, DTO는 어떠한 비즈니스 로직을 가져서는 안되며, 저장, 검색, 직렬화, 역직렬화 로직만을 가져야 한다. 웹 개발을 하다보면, 많이 하는 실수 중 하나가 바로 요청과 응답으로 엔티티(Entity)를 직접 사용하는 것이라고 한다. 하지만 왜 귀찮게 DTO를 만들어서 코드를 작성하는 것이 더 좋을까? D..

1. Intro Java에서 문자열을 다루는 대표적인 클래스로 String, StringBuffer, StringBuilder가 있다. 연산이 많이 않을때는 특별한 이슈가 발생할 가능성이 거의 없지만, 연산횟수가 많아지거나 멀티스레드, 경쟁 상태(Race Condition) 등의 상황이 자주 발생하면 각 클래스의 특징을 이해하고 상황에 맞는 적절한 클래스를 사용해야 한다. 2. String String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않는다. concat 메서드 또는 + 연산자를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라, 새로운 String 객체를 만든 후 새 String 객체에 연결된 문자열을 저장하고..

AOP는 무엇일까? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 그리고 흩어진 Aspect를 모듈화할 수 있는 프로그래밍 기법이다. 아래 사진 예시를 보면 이해가 쉽다. 서로 다른 클래스라고 하더라도 비슷한 기능을 하는 부분(ex 비슷한 메서드, 비슷한 코드)이있다. 이 부분을 Concern이라고 한다.(옆 색칠 되어 있는 부분) 이 때 만약 노란색 기능을 수정하여야하면, 각각 클래스의 노란색 기능을 수정해주어야 하기 때문에, 유지 보수 면에서 불리하다. 이것을 해결한 방법이 AOP이다. 흩어진 기능들을 모을 때 사용하는 것이 Aspect이다. 각각 Concern 별로 Aspect를 만들어주고, 어느 클래스에서 사용하는 지 입력해주는 방식이다. ..

면접시 나올만한 질문 객체지향이란? 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 객체지향 프로그래밍의 장점 코드 재사용이 용이 => 남이 만든 클래스를 가져와서 사용가능 유지보수가 쉬움 => 절차지향 프로그래밍은 일일이 찾아 수정해야하는 반면에 해당하는 부분만 수정하면됨 대형 프로젝트에 적합 => 클래스 단위로 모듈화 시켜서 개발가능 객체 지향적 설계 원칙 SRP(Single Responsibility Principle) : 단일 책임 원칙 클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유이어야 한다. OCP(Open-Closed Principle) : 개방-폐쇄 ..
# SQL Database (관계형 데이터베이스) SQL은 '구조화 된 쿼리 언어 (Structured Query Language)'를 말합니다. 따라서 데이터베이스 자체를 나타내는 것이 아니라, 특정 유형의 데이터베이스와 상호 작용하는 데 사용 하는 쿼리 언어입니다. SQL을 사용하면 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있습니다. 이러한 관계형 데이터베이스에는 두 가지 주요 특징이 있습니다. 데이터는 엄격한 데이터 스키마(= structure)를 따라 데이터베이스 테이블에 저장됩니다. 데이터는 관계를 통해서 연결된 여러 테이블에 분산됩니다. # NoSQL Database (비관계형 데이터베이스) NoSQL은 기본적으로 SQL데이터베이스와 반대되는..

02. JPA 이해 ORM이란? 💡 ORM: Object-Relational Mapping 백엔드 개발자(Backend Developer): 웹 서버를 개발하는 개발자 DBA (Database Administration): 데이터베이스 관리자. 데이터베이스를 설치, 구성, 관리 등의 일을 맡은 사람 Object: **"객체"**지향 언어 (자바, 파이썬) Relational: "관계형" 데이터베이스 (H2, MySQL) Questions) ORM 이 없이 웹 서버 개발은 못 하나요? ORM 없이도 충분히 웹 서버 개발 가능 예) AllInOneController 에서 Repository 역할 분리 ORM 만든 이유? ORM 이 없는 환경에서는 백엔드 개발자가 비즈니스 로직 개발보다 SQL 작성에 더 많은..

WebSocket 을 사용하여 채팅서비스를 구현중 이러한 애러가 발생하였다. 채팅 정보들을 저장하기위해 redis를 사용하고자 하였고, 먼저 로컬에 Redis서버를 설치해야 되나? 아니다. Springboot 에 로컬에서 사용하기 위해 Embeddd Redis 를 지원하는 라이브러리가 있다. 로컬환경에서만 우선 확인해보기위해 application.yml 파일을 나누는 과정에서 발생하였다. org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property 'spring.profiles.active' imported from location 'class path resource [application-local.yml]' ..