분류 전체보기

· 면접
String a = "abc" 라고 만든 변수가 있고, String b = new String("abc") 라고 만든 변수가 있습니다. 이 두 개를 '==' 으로 비교하게 되면 false가 나오는데 왜 그런 건가요? 되게 간단한 질문이라고 생각한다. 기본적으로 String에서 == 비교와 equals()로 비교를 했을 때 차이점을 알고 있냐는 질문과 유사하다. 우선 자바 메모리 구조가 어떻게 되는지 사진으로 알아보자. String a = "abc"; 리터럴로 a라는 변수에 값을 할당했다. 이렇게 하면 스트링 풀에 "abc"라는 값이 생성되기 된다. 새로운 그 다음 새로운 값을 만들어서 비교해보면 String a = "a"; System.out.println(a.hashCode()); String c = ..
· 오류해결
프로젝트를 진행하면서 유저 로그인을 진행하는데 406 에러가 발생하는 상황이 있었다. 스프링부트와 리액트를 사용했고 내부 서비스는 전부 동작해서 DB에 값 수정까지 됐지만응답을 하는 과정에서 406 에러가 발생했다. 나는 ApiResponse를 따로 만들어서 json 응답을 생성하였다. package com.parkchoi.scrum.util.api;public class ApiResponse { // 상태 구분1 private static final String SUCCESS_STATUS = "success"; private static final String FAIL_STATUS = "fail"; private static final String ERROR_STATUS = "er..
· 면접
최근에 SSAFY를 통해 한 기업에서 면접을 보게 되었다.풀스택을 뽑는 자리였고 코딩테스트를 통과해서 1차 면접을 진행했는데, 백엔드 위주로 구성된 포폴과 대답으로 기술 면접은 백엔드 위주로 들어왔다. 근데 질문에 대답을 못했던 부분이 많았어서 이번에 받은 질문들을 정리해보려고 한다. 1. 불변 객체가 무엇인가요?내가 아는 불변 객체는 final을 이용해서 값을 변경하지 못하도록 만드는 객체를 의미한다고 생각했다.그런데 이런 대답을 원하는 느낌이 아니었다... 불변 객체(Immutable Object)한번 객체를 생성하면 그 상태를 바꿀 수 없는 객체를 의미한다. 반대로는 가변(mutable) 객체가 존재한다.불변 객체는 read-only 메서드만 제공하며, 객체의 내부 상태를 제공하지 않거나 방어적 복..
· JAVA
자바를 사용하면서 List나 Map, Set을 많이 사용했는데 지금까지 아무 생각 없이 그냥 사용해 왔던 것 같다. 그래서 어떤 기능을 가지고, 어떤 특징을 가졌는지 정리해보고자 한다. Collections 프레임워크는 자료구조와 관련된 인터페이스, 클래스를 지칭하는 용어다. Collections에는 대표적으로 List, Set이 있다. (Map은 Collections에 포함되지 않음) List의 특징 1. 순서를 가진다. 2. 크기가 정해져 있지 않다.(동적) 3. 중복된 값을 넣을 수 있다. Set의 특징 1. 순서를 가지지 않는다. 2. 크기가 정해져있지 않다.(동적) 3. 중복된 값을 넣을 수 없다. 아래는 List에서 사용 가능한 인터페이스 메서드이다. ArrayList 제일 많이 사용하는 Li..
· 오류해결
기존에는 스프링부트 2.x를 사용해서 시큐리티 설정을 했었다. package com.parkchoi.scrum.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config...
· 오류해결
평소처럼 파이프라인을 작성해서 실행했는데 /var/jenkins_home/workspace/backend-pipeline@tmp/durable-f2782b40/script.sh: 6: Syntax error: Unterminated quoted string 위와 같은 에러가 발생했다. 파이프라인에서 많이 만나는 문법 에러라는데 pipeline { agent any stages { // 현재 작업 공간 내의 모든 것을 삭제 stage('Clean Workspace') { steps { deleteDir() } } // 깃허브 클론을 진행 stage('github Clone') { steps { git branch: 'backend', credentialsId: 'parkgihyeon_user_pass', ..
· 오류해결
스프링부트 3 버전을 사용하면서 이전 프로젝트를 실행시키는데 아래와 같은 에러가 발생했다. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.0 Caused by: org.gradle.internal.component.NoMatchingGraphVariantsException: No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.0 was found. The consumer was configured to find a library for use during runtime, compatible with ..
이제 자바에 가장 큰 특징인 객체지향에 대해 정리해보자. 객체 지향은 4개의 특징을 가지고 있다. 추상화 캡슐화 상속 다형성 객체 지향 프로그래밍은 여러 개의 독립된 단위로 본다. 즉 "객체"들의 모임으로 파악한다. 또한 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들어주어서 대규모 소프트웨어 개발에 사용된다. 즉 레고 블럭 조립하듯이 가능하다!!! 다형성(Polymorphism) 하나의 객체가 하나의 클래스에 고정된 것이 아니라, 여러 가지 타입의 객체로 취급될 수 있다는 개념. 즉 하나의 인터페이스 또는 부모 클래스를 가지고 있는 자식이 그 인터페이스나 부모의 클래스로 취급될 수 있음. 즉 자동차라는 인터페이스를 하나 만들어놓고 그 밑에 K3, 아반떼, 테슬라라는 클래스를 만들었다. ..
indeep
'분류 전체보기' 카테고리의 글 목록 (16 Page)