전체 글(121)
-
(객체지향 관점에서) 스프링 프레임워크를 바라봤을 때 장단점이 무엇이라고 생각하나요?
스프링이 지향하는 목적 : POJO 프로그래밍 방식 진정한 POJO란 객체 지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 말한다. 스프링에 IOC/DI, AOP는 POJO 프로그래밍을 손쉽게 할 수 있도록 지원하는 기술이다. POJO (Plain Old Java Object)기반의 구성 - 코드를 개발 할 떄, 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않음을 의미한다. Java 코드를 이용해서 객체를 구성하는 방식 그대로 스프링에서 사용할 수 있다. (내부적으로 별도의 API 를 사용하지 않고 일반적인 java코드로 객체 구성한다라는 의미.) - 자유롭게 객체 지향적 설계를 구현할 수 있다. 이 말의 의미는 개발자는 가장..
2022.06.15 -
객체 지향적 설계 원칙이란?
SOLID란 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙으로 각각 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)의 앞글자를 따서 만들어졌다. SOLID 원칙을 철저히 지키면 시간이 지나도 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하는데 도움이 되는 것으로 알려져있다. [ 단일 책임의 원칙(SRP, Single Responsibility Principle) ] 단일 책임의 원칙(SRP, Single Responsibility Principle)은 하나의 모듈은 한 가지 책임을 가져야 한다는 것으로, 이것은 모듈이 변경되는 이유가 한가지여야 함을 의미한다. 여기서 변경의 이유가 한가지라는 것..
2022.06.14 -
객체지향 프로그래밍의 장점은?
1. 재사용성에 용이하다. 상속을 통해 프로그래밍시 코드의 재사용을 높일 수 있음. 예시 코드 ) class 도형{ public void move(){ 출력 : "부모클래스" } } class 삼각형 extends 도형{ public void stop(){ 출력 : "자식클래스" } } - 삼각형은 도형을 상속받았기 때문에 move 와 stop 메소드 호출 가능 2. 생산성 향상 잘 설계된 클래스를 만들어서 독립적인 객체를 사용함으로써 개발의 생산성을 향상시킬 수 있음. 3. 자연적인 모델링 우리 일상생활의 모습의 구조가 객체에 자연스럽게 녹아들어 있기 때문에 생각하고 있는 것을 그대로 자연스럽게 구현할 수 있다. 4. 유지보수의 우수성 프로그램 수정시 추가, 수정을 하더라도 캡슐화를 통해 주변 영향이 ..
2022.06.14 -
[항해99] WIL - 12주차 회고록
Weekly I Learned 가로세로낱말퍼즐 게임 구현 - 자동생성 알고리즘 작성 시행착오 - DB에 저장되어있는 단어들을 불러와 랜덤으로 돌려 조건에 맞으면 게임판에 등록시키려고 함. - 그리고 자동으로 생성이 되는 게임판 자체를 따로 또 저장하여 답을 확인하는 요청이 들어왔을 때 답이 맞는지 틀린지 응답을 해주려 했음. - 하지만 답을 백에서 확인을 할 시 게임에 딜레이가 생겨 속도가 저하됨. - 해결책으로 답을 프론트에서 확인하고 백에서는 랜덤으로 생성되는 판 자체를 응답해주고 DB에는 따로 저장하지 않는다. 결과
2022.06.01 -
[항해99] WIL - 11주차 회고록
Weekly I Learned 사전장 고민장 CRUD 마무리 가로세로낱말퍼즐 게임 구현 메인페이지 (단어 리스트) 마무리 전장, 고민장, page 처리 3. 가로세로낱말퍼즐 게임 구현 프론트에게 reponse 해줄 값 (id : 단어 id값 , x y : 첫 좌표, word 단어 , contents 내용 , wordCount 단어 글자수 , isOriental 방향 , pass 문제 정답 postId 값을 Random 객체 난수로 뽑아 전체 DB 에서 첫 단어를 결정한다. 첫 단어가 결정되면 그 다음 단어가 생성되도록 메서드를 하나 만들어 백트래킹과 재귀함수를 이용하여 Service 단에 로직을 작성한다. QuizNum 테이블에 퀴즈번호도 같이 저장해줘야 답을 확인하는 api를 만들 수 있기 때문에 자..
2022.05.24 -
[항해 99] TIL D-45
Today I Learned 실전프로젝트 기획 로그인 없이 채팅기능 스터디 + 구현 기술멘토링 (4/30) 기술멘토링 피드백 - 처음 3주는 DB 모델링 , 어플리케이션 개발에 초점을 맞추자. - CI/CD 나 무중단배포는 3주가 지나고 나서 하자. - DB 모델링, api path 구조에 대해서 왜 이렇게 짰는지 물어본다. - 디렉토리 구분을 해보는것도 좋다. (현재는 controller , service , dto , model 이렇게 나눴지만 현업에서는 너무 많아져서 기능별로 집어넣는다고한다. ex) post 디렉토리, user 디렉토리에 controller, service 를 넣는 방식) - 자바 스프링에 대한 질문들을 할것이다. 디자인 패턴, AOP 등등 cs 관련된 질문이 오면 멘붕이 올텐데 ..
2022.05.04