로또 코드 예제로 이해해 보는 객체 지향 설계 5원칙(SOLID)
·
💻 Dev/Java & OOP
스프링 입문을 위한 자바 객체 지향의 원리와 이해를 보고 5장은 꼭 정리해야겠다 싶어서 예시와 함께 이해해 보려고 노력했다! 이 원칙들은 주기적으로 봐야 할 것 같아서 포스팅한다...! 개요SOLID는 객체 지향 프로그래밍의 설계 원칙으로, 로버트 C. 마틴(Robert C. Martin)이 제시한 다섯 가지 원칙이다. 마이클 페더스(Michael Feathers)가 이를 두문자어로 정리하여 널리 알려졌다. SOLID의 5대 원칙SRP(Single Responsibility Principle): 단일 책임 원칙OCP(Open Closed Principle): 개방 폐쇄 원칙LSP(Liskov Substitution Principle): 리스코프 치환 원칙ISP(lnterface Segregation Pr..
[F-Lab] 13주차 회고
·
📝 끄적끄적/F-Lab
사전 질문메인 기능과 병행할 수 있는 기능이직 관련 질문(6가지)Embedded랑 entity은 값 객체 vs 엔티티와 같은 주제? yes!인프라 일정 사전 학습이력서 1차 수정이론객체지향의 사실과 오해 ~1장김영한님 스프링 핵심 원리 기본편 섹션 6, 7, 8김영한님 JPA 기본편 ~섹션 7프로젝트동행 모집글 생성 진행중 멘토님 질문성능테스트 및 부하테스트 설명스프링의 장점스프링 vs 스프링 프레임워크 vs 스프링 부트 느낀 점멘토링이 총 18주 차인 줄 알고 멘토님과 그에 맞게 진도를 나가고 있었는데, 2024년 7월부터는 17주 차로 바뀌었다고 한다.ㅜㅜ 당황.. 뭔가 쪼들려서 더 조급해졌다.하루차이로 멘토링을 한번 더 못 받는다는 게 시스템적으로 사실 좀 이해가 안 간다. 개발을 계속할수록 약간씩..
싱글톤 패턴은 thread safe하지 않다?(개선 방식 4가지)
·
💻 Dev/Java & OOP
싱글톤 패턴은 클래스의 인스턴스를 하나만 생성하고, 어디서든 이를 접근할 수 있도록 하는 디자인 패턴이다.나도 기본적인 싱글톤 구현 방식으로만 알고 있었는데, 이 방식이 멀티 스레드 환경에서 안전하지 않다는 얘기를 듣고 알아보게 되었다!  기본 싱글톤 구현 (Lazy Initialization)class Singleton { // 싱글톤 클래스 객체를 담을 인스턴스 변수 private static Singleton instance = null; // 생성자를 private로 선언 (외부에서 new 사용 X) private Singleton() {} // 외부에서 정적 메서드를 호출하면 그제서야 초기화 진행 (lazy) public static Singleton getIns..
[F-Lab] 12주차 회고
·
📝 끄적끄적/F-Lab
사전 질문인강보고 노트정리 여부JPA 테스트 데이터 truncate 사전 학습이론김영한 님 스프링 핵심 원리 기본편 섹션 1, 2, 3, 4, 5 복습프로젝트나의 여행 등록 완료HTTP 클라이언트 변경 완료 멘토님 질문프록시 서버싱글톤 구현 방법들팩토리 메서드 패턴템플릿 콜백 패턴스프링이란? 느낀 점이번 주는 이론을 참말로 못했다.컨트롤러, 서비스, 도메인 레이어의 테스트 코드를 전부 작성하는 건 굉장히 어렵다.특히 테스트 데이터 truncate 하는 과정 중에 계속 낙관적 락이 발생해서 거의 이틀 동안 붙잡고 있었던 것 같다.원인은 아는데 할 수 있는 걸 다 해봐도 안돼서 일단 discussion에 적어놓고 보류하기로 했다.진도가 나가야하니까 ㅠㅠ 이제 한 달 정도밖에 안 남았는데 프로젝트 진도가 너무..
[F-Lab] 백엔드(BackEnd) 코스 2개월 솔직후기
·
📝 끄적끄적/F-Lab
뭘 공부했나현재 11주 차까지 멘토링을 진행했다. 지금까지 내가 공부한 것은 ~? 1. 자바의신1 완독2. 스프링 입문을 위한 자바 객체 지향의 원리와 이해 완독3. 김영한 님 스프링 원리 기본 편 수강 중4. 김영한 님 JPA 기본 편 수강 중 정형화된 커리큘럼은 어느 정도 정해져 있다고 들었다.그래도 각자 실력과 프로젝트 기술 스택에 따라 멘토님들이 바꿔주실 거다.실제로 회고를 엄청 많이 봤는데 아예 책을 안 보는 멘티도 많았다. 보통 프로젝트에서 MyBatis를 사용하지만 나 같은 경우는 JPA를 써보고 싶다고 욕심낸 거라 추가로 듣고 있다.둘 다 완강했던 거지만 까먹었기도 하고, 다시 보면서 프로젝트에 같이 적용하고 있다.  1:1은 다르다에프랩을 등록하기까지 타 부트캠프와도 정말 많이 고민했다..
[F-Lab] 11주차 회고
·
📝 끄적끄적/F-Lab
사전 질문테스트 데이터 초기화할 때 선호하는 방법(@Transactional 사용)테스트 코드 - LazyInitializationException파사드 패턴마이페이지 기능은 따로? 사전 학습이론스프링 입문을 위한 자바 객체 지향의 원리와 이해 완독김영한 님 스프링 핵심 원리 기본편 ~섹션 6김영한 님 JPA 기본편 ~섹션 7 멘토님 질문언제 JWT를 쓰고 언제 세션을 쓰면 좋을까요?ISP 원칙이란?디자인 패턴을 왜 공부해야 할까요?어댑터 패턴이란?프록시 패턴이란?데코레이터 패턴이란?싱글톤 패턴이란?템플릿 메서드 패턴이란? (전략 패턴과 비교) 느낀 점드디어 개구리책을 완독 했다. 멘토님이 개구리책을 디자인패턴책이라고 부르시던데 왜 그런지 이해완...디자인패턴을 이해하려면 객체지향을 이해해야 된다.빌드업..
UML(Unified Modeling Language)
·
👶🏻 CS/Software Engineering
UML은 Unified Modeling Language의 약자로, 소프트웨어 시스템의 설계와 시각화를 위한 표준화된 모델링 언어이다.복잡한 소프트웨어 시스템의 구조, 동작, 상호작용을 시각적으로 표현하여 설계와 개발 과정을 체계적으로 정리할 수 있다. 이는 소프트웨어 엔지니어와 기획자, 설계자 등 다양한 이해관계자 간의 의사소통을 효과적으로 돕는 중요한 도구이다. UML을 사용하는 이유하나의 시스템을 개발하기 위해 보통 기획자, 개발자, 설계자, 분석가 등 여러 사람이 참여한다.이때 시스템의 기능에 대해 코드로 작성하기엔 너무 길고, 한 번에 이해할 수 조차 없다.기능과 구조를 문서화하여 이해시키는 것이 훨씬 효율적일 것이다. UML은 시스템을 시각적으로 표현함으로써 이러한 문제를 해결한다.표준화된 기호..