본문 바로가기

분류 전체보기167

3. 도커 이미지 도커 이미지 생성 사용자만의 이미지를 직접 생성하는 실습을 해보겠습니다. 이미지로 만들 컨테이너를 생성하고, 컨테이너 내부에 first라는 이름의 파일을 하나 생성해 기존의 이미지로부터 변경사항을 만듭니다. docker commit 명령어를 입력해 컨테이너를 이미지로 만듭니다. 위에서는 이미지의 이름을 commit_test, 태그를 first로 설정했습니다. -a 옵션은 author을 나타내고 이미지의 작성자를 나타내는 메타데이터를 이미지에 포함시킵니다. commit_test:first 이미지의 작성자 데이터는 "alicek106"으로 설정됩니다. commit_test 이름에 first라는 태그로 이미지가 생성되었습니다. 이번에는 commit_test:first 이미지로 새로운 이미지를 생성해 봅시다. .. 2023. 11. 29.
2. 도커 볼륨 & 도커 네트워크 도커 볼륨 : 도커 이미지는 어떠한 경우로도 변경되지 않으며, 컨테이너 계층에 원래 이미지에서 변경된 파일시스템 등을 저장합니다. 이미지에 mysql을 실행하는 데 필요한 애플리케이션 파일이 들어있다면 컨테이너 계층에는 로그인 정보나 게시글 등과 같이 데이터베이스를 운용하면서 쌓이는 데이터가 저장됩니다. 그러나 mysql 컨테이너를 삭제하면 컨테이너 계층에 저장돼 있던 데이터베이스의 정보도 삭제된다는 점인데, 도커의 컨테이너는 생성과 삭제가 매우 쉽습니다. 이를 방지하기 위해 컨테이너의 데이터를 영속적 데이터로 활용할 수 있는 방법이 몇 가지 있는데, 가장 활용하기 쉬운 방법이 바로 볼륨을 활용하는 것입니다. 방법이 여러 가지 있는데 알아서 알아보아요. 1. 호스트 볼륨 공유 mysql 데이터베이스 컨테.. 2023. 11. 28.
2. 질문 캐시 : 데이터나 값을 미리 복사해 놓는 임시 장소입니다. 캐시에 데이터를 미리 복사해 놓으면, 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있습니다. 캐시에 모든 데이터를 다 담아둘 수 없기 때문에, 캐시의 크기가 제한되고 그에 따라 캐시가 대체되어야 합니다. 캐시 교체 알고리즘에 따라 어떤 파일을 버리고 새로운 캐시를 저장할지 결정하는 것이 캐시 교체 알고리즘입니다. 종류 1. FIFO - 캐시 내에 오래 있었던 페이지 교체, 자주 사용되는 페이지가 교체될 우려가 있음. 2. LFU - 사용 횟수가 가장 적은 페이지 교체, 최근 적재된 페이지가 교체될 우려가 있음. 3. LRU - 가장 오랜동안 사용되지 않은 페이지 교체, time stamping에 의한 오버헤드 존재 * 페이지 : .. 2023. 11. 27.
1. 도커 도커 : 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트 Go 언어로 작성되어 있고. 도커 엔진은 컨테이너를 생성하고 관리하는 주체로서 이 자체로도 컨테이너를 제어할 수 있고 다양한 기능을 제공하는 도커의 주 프로젝트이기 때문이다. 기존의 가상화 기술은 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었다. 이러한 여래 개의 운영체제는 가상 머신이라는 단위로 구별되고, 각 가상 머신에는 우분투, CentOs 등의 운영체제가 설치되어 사용됩니다. 각 게스트 운영체제는 다른 게스트 운영체제와는 달리 완전히 독립된 공간과 시스템 자원을 할당받아 사용합니다. 이러한 가상화 방식을 사용할 수 있는 대표적.. 2023. 11. 24.
8. Spring 3대 요소 Spring객체지향적으로 설계한 POJO를 유지하며 애플리케이션을 쉽고 효과적으로 개발할 수 있도록 지원하는 프레임워크라고 생각한다. 실패한 해결책 : EJB자바 엔터프라이즈 시스템 개발이 어려웠던 가장 큰 이유는 근본적인 비즈니스 로직과 엔터프라이즈 기술이라는 두 가지 복잡합이 한데 얽혀 있기 때문이다. EJB의 기본 전략도 이 두가지 종류의 복잡함을 분리하는 것이었다. EJB는 기술적인 복잡함을 애플리케이션의 핵심 로직에서 일부분 분리하는 데 성공하긴 했다. 그러나 EJB라는 환경과 스펙에 종속되는 코드로 만들어져야 하는 더 큰 부담을 안게 되었다. EJB라는 틀 안에서 자바 코드를 만들게 강제함으로써 자바 언어가 원래 갖고 있던 장점마저 잃어버렸다는 사실이다. 비즈니스와 애플리케이션 로직의 복잡함을.. 2023. 11. 23.
7. JVM JVM JDK : 자바 개발 키트의 줄임말로 JRE에 컴파일러, 디버거 등 개발 도구를 포함하는 프로그램 JRE : 자바 실행 환경의 줄임말로 JVM에 자바 라이브러리와 기타 파일들이 결합된 자바를 실행하기 위한 프로그램. JVM : 자바 가상 머신으로 애플리케이션을 클래스 로더를 통해 읽어 들여 API와 함께 실행  JVM 구성(class Loader)1.  java 파일을 Java 컴파일러가 컴파일하면 .class 파일인 바이트 코드가 생성2. 클래스 파일들을 엮어서 JVM이 운영체제로부터 할당받은 메모리 영역인 Runtime Data Area에 적재하는 역할을 한다.  (execution engine) 1. 클래스 로더에 의해 메모리에 적재된 클래스(바이트 코드)들을 기계어로 변경해 명령어 단위로 .. 2023. 11. 23.
LG CNS 자회사 비즈테크아이 면접 후기 (2023.08) LG CNS의 자회사인 비즈테크아이 인턴에 지원하게 되었다. 과정은 서류 -> 인적성, 코딩 테스트 -> 면접 -> 결과였다.  서류제출 결과 ~ 짜잔!!!  서류에 합격했다는 메일이 도착했다!!  실무에서 인턴 경험을 쌓아 개발자가 되기 위해 필요한 역량을 기를 수 있는 좋은 기회라고 생각했기에 기대되었다. 이후 코딩테스트와 인성 검사를 보게되었다. 코딩테스트는 3문제였고, 2시간이 주어졌다. 개인적인 생각으로는 문제의 변별력이 크지 않았고, 코딩테스트를 꾸준하게 준비했다면 어렵지 않게 해결할 수 있을 수준이었다.   그 다음 인성검사를 보게 되었는데, LG는 따로 LG Wat Fit Test라는 데스크앱을 설치 후 주어진 id, pw를 통해 입장할 수 있었다.신기해서 이것저것 구글링 해보았음!   인.. 2023. 8. 29.
롯데 e커머스 채용연계형 면접 후기(2023.07) 롯데 e커머스 서류 지원 후 네이버 메일로 연락이 왔다. 서류 지원의 자소서에는 2가지가 있는데, 이번에는 입사 후 커리어 계획과 그동안 본인이 노력한 과정에 대해 글을 쓰는 것이었다. 그 결과 ~~  짜잔! 운이 좋게 필기 시험과 기술면접을 볼 수 있는 기회를 얻게 되었다.  코딩테스트는 보통 기업에서 온라인으로 볼 경우가 많았는데, 필기시험이라는 말에 당황하였다 ㅎㅎ.. 라이브 코딩인가 해서 엄청 식겁..구글링을 통해 면접 후기나 시험에 관한 얘기를 찾아보았는데, 대부분 많이 힘들었다는 말이 있었다. 시험은 어렵지 않지만 면접에서 멘탈이 많이 무너지는 경우가 많았다. 이번에는 3일에 걸쳐 하루에 100명씩 다대일로 면접을 보았다. 듣기로 마지막 날은 4,50명 있었다고 들었습니다..ㄷㄷ작년에 비해 지.. 2023. 8. 1.
고용노동부에서 실시한 공모전 프로젝트 8주차 회고록 https://github.com/Contest-of-YDJ (23.06.20 ~ 23.06.27) B.E. 모든 페이지 한글 -> 영어로 수정 및 위험성 인증 안전 사업장 사용 가이드 라인 기능 추가 Community 카테고리 댓글 기능 추가 산재 지원 병원 카테고리 기능 추가 -> xml 문서 파싱을 위해 Jaxb 사용 F.E. 산재 지원 병원을 위해 Kakao Map API 사용 -> 위치에 대한 마커 및 세부 정보 표시 첫 메인 페이지 슬라이드 및 UI 수정 여러 데이터 페이징 처리 -> 이제 마무리 단계에 들어서 백엔드 최소한의 기능 구현은 마쳤다. 프론트에서 현재 jwt, ui 수정 작업을 진행중이고, 백엔드 팀원과 함께 공모전을 위한 보고서 작성 및 시스템 아키텍처 도안, Github Re.. 2023. 6. 29.
고용노동부에서 실시한 공모전 프로젝트 7주차 회고록 23.05.29 ~ 23.06.12 B.E. 커뮤니티 -> 첫화면 전체 데이터 불러오고 안에 카테고리 만들어서 해당 데이터만 받아올수있게 표형식으로 보여주기 산재 예방 api → 번역쪽 구현 추가 code review 중 85% 정도 refactoring 완료했고, 나머지는 github project의 Issue로 등록하여 잊지않고 할 수 있게끔 계획. 필자가 맡았던 위험성 안전 인증 회사 기능 구현은 마쳤고, 바로 산재 예방 지원 병원 기능을 맡아 구현할 예정. 팀원분은 산재 메뉴얼 번역쪽 하고 있고, 문제가 있는 것 같아 Google meeting로 협업하여 나아갈 예정 F.E. 커뮤니티 기능 글 작성시 데이터 전송 수정 커뮤니티 글은 모달창으로 보이게끔 수정 글작성 쪽 관련 마무리하고 → time.. 2023. 6. 14.
고용노동부에서 실시한 공모전 프로젝트 6주차 회고록 23.05.15 B.E. 커뮤니티 기능 작업 시작 ~ 5.22 마무리 성공 이번주부터 현직 개발자 code review 받기로 해서 해당 부분 refactoring하고 모르는거 물어보기. 공공데이터 기능 위험 안정성 인정 사업장 Api 기능 구현 시작 -> me 산재 예방 메뉴얼 Api 기능 구현 시작 F.E. 메인 페이지 슬라이더 수정 완료 회원가입하면 로그인 화면으로 갈 수 있도록 로그아웃 눌렀을때 홈화면으로 가기 슬라이드 구분 배율 ~~님 안녕하세요 jwt 형식 똑같이 보내주도록 → 로컬스토리지나 세션에 저장해서 모든 api 들어갈 때 jwt 토큰만 5월1일 사진에 있는것 그대로 똑같이 보내주면됨 커뮤니티, 건의사항 쪽 ui 작업 간단하게 해놓기 커뮤니티 게시글 더미 데이터 넣어서 꾸며보기 커뮤니티.. 2023. 6. 14.
CH6 람다와 스트림 step42: 익명 클래스보다는 람다를 사용하라 예전에는 자바에서 함수 타입을 표현할 때 추상 메서드를 하나만 담은 인터페이스를 사용했다. 이런 인터페이스의 인스턴스를 함수 객체라고 하여, 특정 함수나 동작을 나타내는데 사용했다. JDK 1.1이 등장하며, 함수 객체를 만드는 주요 수단은 익명 클래스가 되었다. 지금은 함수형 인터페이스라 부르는 이 인터페이스들의 인스턴스를 람다식을 사용해 만들 수 있게 된 것이다. 타입을 명시해야 코드가 더 명활할 때만 제외하고는, 람다의 모든 매개변수 타입은 생략하자. 익명 클래스 : 프로그램에서 일시적으로 한번만 사용되고 버려지는 객체 사용 이유? - 프로그램 내에서 일시적으로 한번만 사용하거나 재사용성이 없고 확장성을 활용하는 것이 유지보수에서 더 불리할 때 Col.. 2023. 5. 15.
고용노동부에서 실시한 공모전 프로젝트 5주차 회고록 5주차 feedback 백 : jwt 구현, 로그인 구현 완료 프 : 로그인, 메인 페이지 해당 부분 완성 로그인하면 메인 페이지로 가게, 로그인쪽이랑 메인페이지 css 꾸미기! 로그아웃하면 메인페이지로 이동하도록 로그인하면 아래 처럼 jwtToken이 프론트로 날라가는데 이걸 저번 우리 프로젝트 했던거처럼 로컬 스토리지에 저장해놨다가, 다른 api 호출할때 토큰값을 같이 보내줘야해 여기 공부 프론트쪽에 스웨거 사용 법 간단히 설명 jwt 토큰 관련 설명 백엔드쪽에 회원가입 및 로그인에 User 정보 저장 관련 Bug fix → DB 칼럼 네이밍과 프론트쪽 post 데이터 네이밍 불일치 때문에 일어난 오류 회의 프론트 1) 슬라이드 쪽 수정, 로그아웃 버튼만들고 action → home으로 가도록 2) .. 2023. 5. 8.
CH05 열거 타입과 애너테이션 step34: int 상수 대신 열거 타입을 사용하라 열거 타입은 일정 개수의 상수 값을 정의한 다음, 그 외의 값은 허용하지 않는 타입이다. 정수 열거 패턴기법에는 단점이 많은데, 타입 안전을 보자할 방법이 없으며 표현력도 좋지 않다. 정수 열거 패턴을 사용한 프로그램은 깨지기 쉽다. 평범한 상수를 나열한 것뿐이라 컴파일하면 그 값이 클라이언트 파일에 그대로 새겨진다. 따라서 상수의 값이 바뀌면 클라이언트도 반드시 다시 컴파일해야 한다. 다시 컴파일하지 않은 클라이언트는 실행이 되더라도 엉뚱하게 동작할 것이다. 정수 대신 문자열 상수를 사용하는 변형 패턴도 있다. 문자열 열거 패턴 이라 하는 이 번형은 도 나쁘다. 상수의 의미를 출력할 수 있다는 점은 좋지만, 경험이 부족한 프로그래머사 문자열 상수의 .. 2023. 5. 5.
CH04 제네릭 step26: Raw 타입은 사용하지 말라 클래스와 인터페이스 선언에 타입 매개변수가 쓰이면, 이를 제네릭 클래스 혹은 제네릭 인터페이스라 한다. 각각의 제네릭 타입은 일련의 매개변수화 타입을 정의한다. 먼저 클래스 이름이 나오고, 이어서 꺾쇠괄호 안에 실제 타입 매개변수들을 나열한다. List은 원소의 타입이 String인 리스트를 뜻하는 매개변수화 타입이다. 여기서 String이 정규 타입 매개변수 E에 해당하는 실제 타입 매개변수다. 마지막으로, 제네릭 타입을 하나 정의하면 그에 딸린 로 타입(raw type)도 함께 정의된다. 로 타입이란 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않은 때를 말한다. 예로 List의 Raw type은 List다. Raw type을 쓰면 제네릭이 안겨주는 안전.. 2023. 5. 2.
Ch02 모든 객체의 공통 메서드 step10: equals는 일반 규약을 지켜 재정의하라 equals를 재정의 하지 않아도 되는 경우 1st 각 인스턴스가 본질적으로 고유한 경우 - 값이 아닌 동작을 표현하는 클래스의 경우 - Thread 2nd 인스턴스의 논리적 동치성을 검사할 일이 없는 경우 3rd 상위 클래스에서 재정의한 equlas가 하위 클래스에서도 적용 되는 경우 - Set, Map, List의 경우 4th 클래스가 private 이거나, package-private여서 equals를 호출할 일이 없는 경우 5th 싱글턴을 보장하는 클래스 (인스턴스 통제 클래스, Enum인 경우) - 객체간 동등성, 동일성이 보장 equals를 재정의 하는 경우 지켜야 할 규약 equals를 재정의 해야 하는 경우는 객체 동일성을 확인해야 .. 2023. 4. 25.
Ch03 클래스와 인터페이스 step15: 클래스와 멤버의 접근 권한을 최소화하라 어설프게 셜계된 컴포넌트와 잘 설계된 컴포넌트의 가장 큰 차이는 바로 클래스 내부 데이터와 내부 구현 정보를 얼마나 외부 컴포넌트로부터 잘 숨겼느냐다. 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨, 구현과 API를 깔끔히 분리한다. 정보 은닉의 장점은 정말 많다. 그중 대부분은 시스템을 구성하는 컴포넌트들을 서로 독립시켜 개발, 테스트, 최적화, 적용, 분석, 수정을 개별적으로 할 수 있게 해주는 것과 연관되어 있다. 장점 1st 시스템 개발 속도를 높인다. 여러 컴포넌트를 병렬로 개발할 수 있기 때문이다. 2nd 시스템 관리 비용을 낮춘다. 각 컴포넌트를 더 빨리 파악하여 디버깅할 수 있고, 다른 컴포넌트로 교체하는 부담도 적기 때문이다. 3.. 2023. 4. 25.
스프링 부트 3.X 버전 Swagger 도입시 생긴 오류 프로젝트 진행시 Api 테스트를 위해 Postman을 자주 사용했었는데, 지난 프로젝트에서 Swagger를 사용하면서 굉장히 편리하다는 것을 깨달았다. 그래서 이번 프로젝트를 진행하면서 Swagger를 도입하려고 했으나!! 여러 문제점 때문에 2일 동안 골머리를 앓았다. 첫번째 저번과 똑같이 쓰면 되겠지, 하는 안일한 생각에 아래를 implementation 했는데 결과는...? 검색해보니 SpringBoot 3버전 이상에서는 2.6.1 버전의 swagger를 사용할 수 없었다. springfox swagger가 SpringBoot 3버전을 지원하지 않기 때문이다. 그래서 springdoc swagger를 사용해야 했고, 장점으로 별도의 configuration 설정 없이 사용이 가능했다. 아래처럼 추가.. 2023. 4. 21.
Comparable, Comparator 인터페이스 백준 문제풀이를 진행하는데 있어 정렬에 조건을 줄 때, 아직 미흡한 이해 때문에 구글링을 번복하고 있다. 그렇기에 이번 기회에 확실하게 개념을 잡고 활용해보고자 정리하게 되었다. Comparable 인터페이스를 사용하려면 compareTo 메소드를 구현해야하는 것, Comparator 인터페이스를 쓰려면 compare 메소드를 구현해야 하는 점이 서로의 차이점이다. 보통 두 인터페이스는 "객체를 비교할 수 있도록 만든다." 라고 생각하는 것이 편하다. 하지만 왜 객체를 비교할 수 있도록 생각하라는 것일까? 우리는 원시 타입의 실수 변수 경우 부등호로 쉽게 비교할 수 있기 떄문이다. 하지만 새로운 클래스 객체를 만들어 비교하고자 한다면 본질적으로 객체는 사용자가 기준을 정해주지 않는 이상 어떤 객체가 더 .. 2023. 4. 15.
고용노동부에서 실시한 공모전 프로젝트 3주차 회고록 2주차 정리 1) 백엔드, 프론트 연동 완료 2) 각자 작업 세팅 및 브랜치 전략과 프로젝트 구조 논의 완료 3) Github Project를 사용하여 이슈와 태스크 관리를 사용하기로 논의 완료 깃 커밋 컨벤션 규칙은 아래로 맞추어 진행하기로 하였다. feat : 새로운 기능 추가 fix : 버그 수정 docs : 문서의 수정 style : (코드의 수정 없이) 스타일(style)만 변경(들여쓰기 같은 포맷이나 세미콜론을 빼먹은 경우) refactor : 코드를 리펙토링 test : Test 관련한 코드의 추가, 수정 chore : (코드의 수정 없이) 설정을 변경 추가로 주간회의인 다음주 목요일 4.20 일까지 구현을 목표로 하고, 4.17에 중간회의 및 이슈 발생에 대한 논의를 얘기하기로 하였다. I.. 2023. 4. 13.
:) Thinking의 블로그 소개 안녕하세요. 저는 컴퓨터 공학과를 2023년 졸업한 공대생 입니다. Thinking의 블로그는 백엔드 개발자가 되기 위해 나아가는 저의 모습을 담아 발전 과정을 지켜보고 싶었고, 비슷한 상황에 놓인 다른분들과도 좋은 정보와 지식을 공유하고자 생성하게 되었습니다. 2021년 여름 시기에 학부생 시절 인공지능에 관심이 있어 공부했던 글이나 자료를 정리한 것이 카테고리에 있습니다. 그러다 하고자 하는 방향에 대해 고민이 들기 시작했고, 2022년 가을부터 자바와 스프링부트에 대한 공부, 코딩테스트 준비를 시작하였습니다. 초반에는 바뀌어진 상황에 적응하기 바빠 블로그를 자주 작성하지 못하였지만 지금부터라도 다시 차근차근 쌓고자 하였습니다. 부족한 점이 많겠지만 성실하게 활동 할테니.. 2023. 4. 13.
글을 쓰기에 앞서서 위 카테고리를 이제 생성에 대해 많은 시간을 고민했다. 이유는 아직 부족한 코테의 실력과 더불어 알고리즘에 대한 이해가 충분히 풍부하지 않았기 때문이다. 물론 지금도 훌륭한 적용을 바탕으로 문제를 해결하지는 못하지만, 현재 시점부터는 문제를 푸는 것 이외에 다양한 관점에서 여러 방면으로 접근해보고 더 꼼꼼한 공부를 해보고 싶었기에 시작하게 된 것이다. 코테 준비를 위해 1년 기간동안 알고리즘 스터디를 동기들과 꾸준하게 하고 있는데, 이는 4명이서 매주 4문제씩 백준 홈페이지에서 문제를 선정하고 있다. 문제에 대한 이해와 관점은 다른 경우가 많았기에 현재는 각자 Pr을 올려 코드 리뷰를 개인적으로 진행하고 있다. 깃허브 링크는 아래에 있으니 참고해도 좋을 것 같다. https://github.com/lco.. 2023. 4. 13.
이진 트리와 순회 방법 이진 트리(Binary Tree)는 각 노드가 최대 두 개의 자식 노드를 가지는 트리 자료구조입니다. 이진 트리는 많은 알고리즘에서 사용되며, 특히 검색 알고리즘에서 자주 사용됩니다. 이진 트리는 각 노드(Node)가 데이터와 두 개의 포인터(left, right)를 가지며, 이 포인터를 통해 자식 노드를 가리킵니다. 트리의 가장 위쪽에 위치한 노드를 루트 노드(Root Node)라고 하며, 가장 아래쪽에 있는 노드를 리프 노드(Leaf Node)라고 합니다. 이진 트리는 여러 가지 방법으로 순회할 수 있습니다. 대표적인 순회 방법으로는 전위 순회(Preorder Traversal), 중위 순회(Inorder Traversal), 후위 순회(Postorder Traversal)가 있습니다.다음은 이진 트.. 2023. 4. 13.
고용노동부에서 실시한 공모전 프로젝트 2주차 회고록 정리 2주차는 간단한 피그마 사용으로 UI 결정과 기능을 얘기하였다. 전체적인 프로젝트 일정을 잡았고, 앞으로 커밋 컨벤션 정의와 Pr에 대한 논의를 나누고 태스크를 나눈 후 개발을 시작할 예정이다. 메인 UI는 아래 링크에 있는 것을 토대로 작성할 예정 https://www.gdweb.co.kr/sub/view.asp?displayrow=60&Txt_key=all&Txt_word=&Txt_agnumber=&Txt_fgbn=5&Txt_bcode1=&Txt_gbflag=&Txt_bcode2=&Txt_bcode3=&Txt_bcode4=&Txt_bcode5=&Page=1&str_no=19038 http://www.gdweb.co.kr www.gdweb.co.kr 아래는 피그마 URL https://www.fi.. 2023. 4. 13.
Ch01 객체 생성과 파괴 step1 : 생성자 대신 정적 팩터리 메서드를 고려하자 클래스는 public 생성자 대신 정적 팩토리 메서드를 제공할 수 있다. 장점 5가지 1st 이름을 가질 수 있다. 2nd 호출 될 때마다 인스턴스를 새로 생성하지 않아도 된다. -> 이에 대한 예시는 enum이 대표적이다. 사용되는 값들의 개수가 정해져 있으면 해당 값을 미리 생성해놓고 캐싱할 수 있는 구조로 만들 수 있다. 즉 정적 팩터리 메서드와 캐싱구조를 함께 사용하면 매번 새롭게 만들어 줄 필요가 없다. 3rd 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. -> 상속을 사용할 때, 확인할 수 있다. 이때 정적 팩터리 메서드가반환값을 반환할 때, 상황에 따라 하위 클래스 타입의 객체를 반환할 수 있다는 것이다. 4th 입력 매.. 2023. 4. 5.
고용노동부에서 실시한 공모전 프로젝트 1주차 회고록 Safety of Business for Foreigner 주제 : 외국인을 위한 산재 예방 웹사이트 회의 일정 : 월, 목 밤 10시 해당 페이지마다 번역버튼 생성 → 해당 글을 각자 나라 사람이 볼 수 있게! 사용할 임시 카테고리!! 산업재해 발생 사실 은폐 사업장 관련 정보 데이터 → https://www.data.go.kr/data/15090005/fileData.do#/API 목록/getuddi%3Ae977497a-08bc-4713-bba3-b33ac189a172, https://www.data.go.kr/data/15090007/fileData.do#/API 목록/getuddi%3Ab7254d09-5624-4207-a4c4-f53964654568 산재병원 의료 현황 데이터 → https://w.. 2023. 4. 4.
6. 핵심원리 기본편 스프링과 객체 지향1. 다형성이 가장 중요하다2. 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.3. 스프링에서 이야기하는 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다.4. 스프링을 사용하면 마치 레고 블럭 조립 하듯, 공연 무대의 배우를 선택하듯 구현을 편리하게 변경할 수 있다.   SRP (단일 책임 원칙) : 하나의 클래스는 하나의 책임만 가져야 한다. 중요한 기준은 변경이다, 변경이 있을 때 파급 효과가 적으면 SRP를 잘 따른것. OCP (개방 폐쇄 원칙) => 확장에는 열려있으나 변경에는 닫혀 있어야 한다. => 다형성을 활용하자 LSP ( 리스코프 치환 원칙 ) ISP  ( 인터페이스 분리 원칙 ) DIP ( 의존관계.. 2022. 8. 2.