전체 글29 의존성에 대해 잊지 말아야 할 내용들. 1. 가능하면 의존성을 드러내라 보통 시간,random 등 변하는값을 다룰때 실수로 의존성을 많이 숨기게된다. login(); -> 로그인 함수내부에 clock에서 시간을 받아서 사용하지만 이것만 보는사람은 clock 을 쓰는 메소드인지 모른다. 2. 해결방법 : 외부에서 주입받기. login(Clock clock); 근데 결국 이 clock 을 외부에서 주입받는거를 dao -> servive -> controller 의 매개변수로 폭탄돌리기를 하는꼴. 3. 해결방법 : 변하는 값을 추상화시켜라. 의존성 역전 원리를 이용하여 런타임(실제돌아가는환경) 의존성과 컴파일(코드가컴파일될때) 의존성을 다르게 가져가기. CQRS C - command and Query Responsibility segregation.. 2023. 8. 8. SOLID 원칙 SOLID 원칙? - 객체지향적으로 코드를 짜기위해 따르면 좋은 원칙 5가지 S - 단일책임원칙 클래스는 하나의 책임(목적)만을 가져야 한다.(응집도) 코드가 100줄이 넘어간다면 너무많은 책임을 할당하지 않았는지 점검할것 O - 개방폐쇄원칙(ocp, Open-closed principle) 소프트웨어개체(클래스,모듈,함수) 는 확장에 대해서는 열려있어야 하고, 수정에 대해서는 닫혀 있어야 한다는 원칙. 어떤 기능을 추가구현 하기 위해 그것과 관계없는 코드를 건드려야 하는 상황-> "확장에는 닫혀있다" 기존 코드를 건들지 않은채 기능을 추가할수 있어야 함 -> "수정에는 열려있다" 추상화가 부족한 경우에 나타나는 현상 L - 리스코프 치환 원칙 자료형 C가 자료형 M의 하위형이라면, 필요한 프로그램의 속.. 2023. 8. 8. java - 객체에 대한 인사이트들. 순차지향 프로그래밍 (sequential oriented programming) -어셈블러 절차지향 프로그래밍 (procedure oriented programming) -c언어 -여기서 procedure 란 사실 함수라는 뜻 자바 코드컨벤션 오픈소스인 스프링 시큐리티의 코드인데 ㅈㄴ 긴거. RequestMatcherDelegatingAuthenticationManagerResolver.java ㅋㅋㅋ get 과 find 의 차이 get - 리턴타입이 객체 find - 리턴타입이 Optional vo= 불변하는 객체 dto = 데이터 트랜스퍼 객체 entity = 식별자,수명주기,저장소 세가지요소가 존재. PO = 주로 db에 저장되는 entity 디미터 법칙 모은 자신이 조작하는 객체의 속사정을 몰라야.. 2023. 6. 2. [4월회고] 4월에도 열일 했다. - 요즘 리조트IT 업무 특성상 워터파크 연간이용권 시즌이라 대매사 외부 업체와의 api연동 관련한 업무가 많았다. - 연간이용권 구매,정보등록,발급 등 협업을 위해 체크하고 대매사에서 데이터 잘못넣은 거 있으면 전화해서 바로잡고. - 타사 개발자들과 소통할땐 개발자가 쓰는 단어를 쓸수 있어 편한 편이고, 마케팅이나 영업 담당자와도 소통할 일이 많은 시즌이라 이부분은 신경써서 설명해야한다. ('api 까진 태워졌어요' 라고할시 한번에 이해하지 못하심) - 사전체크인 관련하여 페이지 고도화 개선할 부분을 개선했다. - 그밖에 상품,패키지 관련 그때그때 들어오는 일 쳐내기. 현업에서 요청하고 물어보는거 시스템 적으로 봐 드리기. 2022. 5. 19. [3월 회고] 2년간 개발자로 일해 오면서 그 동안은 1. 업무 도메인에 적응하고 2. 나에게 주어진 과업을 충실히 수행하는 것에 집중하느라 딱히 개발블로그나 회고를 작성해야 겠다는 생각을 하진 않았다. 구글링 하다가 정말 적어두고 싶은 내용을 가끔 블로그에 저장해놓는 정도? 이제는 정규직 2년4개월, 채용 전환형 인턴을 포함하면 2년 7개월의 경력이 생겼다. 당연히 취업 당시 나의 개발 실력보다 지금 개발 실력이 훨씬 늘었다고 자신감 있게 말할 수 있다. 이런 것들을 잊어버리지 않기 위해서 조금씩 조금씩 내가 어떤걸 했고, 뭘 느꼈는지 기록해 보려고 한다. 성장의 밑거름이 될수 있을까!? (의심ㅋㅋ) 2022. 4. 13. [온라인강의] 실전 개발자를위한 spring framework - 멀티캠퍼스 스프링이란? - 가장 많이사용하는, 사실상 자바 표준 프레임워크 - 경량급 애플리케이션 프레임웍. - 경량급? : 단순한 웹컨테이너에서도 엔터프라이즈 개발의 고급기술을 대부분 사용할수 있음 - 애플리케이션? : 특정 계층,기술,도메인에 국한되지 않고 범용적으로 쓰일수있음 - 엔터프라이즈 개발이 용이하다? : 개발자가 복잡하고 실수하기 쉬운 로우레벨에 많이 신경쓰지 않으면서 비즈니스 로직 개발에 전념할수 있음 스프링 framework 특징 - 컨테이너 역할 - DI 지원 : 설정파일이나 어노테이션을 통해 객체간의 의존관계를 설정할수 있도록 지원한다. - AOP 지원 : 트랜잭션이나 로깅,보안처럼 공통적으로 필요로 하는 모듈을 핵심모듈에서 분리해서 관리하고 재사용할수 있다. -pojo 지원: 스프링 컨테이너.. 2022. 4. 10. [코어자바9] 강의 들으면서 소소한 의문점들과 생각 당연히 array 보다 arraylist 가 좋은데 굳이 array를 쓸이유가잇나? -> 속도때문에 예전엔 적절히 array 를 썼는데, 최근에 기술발전으로 인해 거의 차이가없다. map 에서 성능향상된게 hashmap 인데, 어떤식으로 향상된걸까? arraylist 와 hashmap 사용의 용도 구분만 잘해도 좋은 개발자인 것 같다. 정말 문법과 문법이 아무 차이가 없는가? 그렇다면 다이아몬드 문법의 장점은 뭔가? 사실. 리스트에서 인덱스로 관리하고 맵에선 key로 관리하는데. 맵에서 key를 0,1,2,3으로 주면 리스트와 같은거 아닌가? -> 하지만 리스트는 순서가 정해져 있어 N번째껄 찾을때 연산이 유용하고, 맵은 키값이 0,1,2,3으로 되있을지언정 정렬이 순서대로 된게 아니라서 속도가 다른건가.. 2022. 3. 22. 100층짜리 음식점 지하에는 로드밸런싱 팀이 있다?? :: 로드밸런싱, 로드밸런서란? 네트워크 기술 이야기 로드 밸런싱이란 뭐 일것 같은지 한번 잠깐 생각 해보자. 로드 (= 부하) 를 밸런싱(= 균형있게 분산) 하는것. 난 먹는거 좋아하니까, 어떤 음식점이 있다고 치자. 음식점이 커지고, 손님이 많아지면 당연히 기존 직원으로는 정상적인 운영을 하기가 힘들다. 이런 손님증가 (=트래픽 증가) 에 대처할 수 있는 방법은 크게 2가지가 있는데... 1. 기존 직원들이 일을 더 빠르고, 숙련되고, 효율적으로 하기 (=서버 성능개선, scale up 이라고 함) 2. 직원을 더 뽑기 (=서버 증설, scale out 이라고 함) "1.기존직원이 더 잘 하기" 는 그냥 기존 직원들을 스파르타로 교육하면 된다.ㅋㅋㅋ (쉬는날 돈들여 교육을 시킨다던지, 영업마감 후 사장이 직접 빡시게 굴리던지.. etc) 문제는 사장님이.. 2022. 2. 4. 자바 빌드 툴들의 개념과 종류에 대해 (feat.노예비유) 빌드 도구란? 간단히 말해서 (예를들어 Java 환경이라 했을때) 자바에서 라이브러리 들을 편리하게 추가할수 있는 도구 더 간단히 말하면? 라이브러리 = 내가 공부하기 위해 참고할 도서관에 꽃힌 책들 빌드도구 = 방대한 도서관에서 내가 필요한 책들을 내 공부의 목적과 용도에 맞게 알아서 찾아와주는 노예 제너럴 한 빌드 도구들에는 뭐가 있나? 메이븐 - 현회사에서 사용함 그래들 - 최근 많이 사용함, 메이븐과 더불어 거의 시장을 점유하는 애. build.gradle 파일로 생성. 엔트 - 2022. 1. 26. 이전 1 2 3 4 다음 반응형