본문 바로가기
  • 달려가보자고~!

분류 전체보기173

주요 키워드 📘1. 객체지향 프로그래밍(OOP)에 대해 설명해주세요. 알고있는 원칙이나 키워드를 언급해주세요 OOP란? Object Oriented Programming, 객체 지향 프로그래밍 객체 지향 프로그래밍은 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 객체들의 상호작용으로 프로그램을 구성하는 방법. 객체들은 메세지를 주고받으며 데이터를 처리. OOP의 특성 1. 캡슐화 - 객체의 속성(fields)과 행위(methods)를 하나로 묶고, 외부로부터 데이터를 보호하는 것을 말함. - 접근제어자를 통해 캡슐화 할 수 있음. 2. 상속화 - 자손 클래스는 조상 클래스의 모든 멤버를 상속받음. - 조상 클래스를 재사용해서 새로운 클래스를 작성할 수 있게 됨 3. 추상화 - 여러 클래스의 공통.. 2023. 8. 9.
[Spring] 테스트코드 (2) TDD(Test Driven Development) - 프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현 과정을 주도하도록 하는 방법론 선 기능 구현, 후 테스트 작성 - 테스트 자체의 누락 가능성 - 특정 테스트 케이스(해피 케이스)만 검증할 가능성 - 잘못된 구현을 다소 늦게 발견할 가능성 선 테스트 작성, 후 기능 구현 - 복잡도가 낮은(유연하며 유지보수가 쉬운), 테스트 가능한 코드로 구현할 수 있음 - 쉽게 발견하기 어려운 엣지(Edge)케이스를 놓치지 않게 해줌 - 구현에 대한 빠른 피드백을 받을 수 있음 - 과감한 리팩토링이 가능해짐 TDD 관점의 변화 - 클라이언트 관점에서의 피드백을 주는 Test Driven 애자일(Agile)방법론 vs 폭포수 방법론 - 애자일 방법론 : 2.. 2023. 7. 14.
[Spring] 테스트코드 (1) 개발을 진행하면 진행할 수록 테스트를 해야하는 범위가 늘어날뿐더러 인력도 같이 늘어남 - 커버할 수 없는 영역이 발생 - 경험과 감에 의존 - 늦은 피드백 - 유지보수에 대한 어려움 - 소프트웨어의 신뢰도 하락 빠른 피드백, 자동화, 안정감을 위해 테스트코드를 작성 테스트코드를 작성하지 않는다면 - 변화가 생기는 매순간마다 발생할 수 있는 모든 Case를 고려해야 함 - 변화가 생기는 매순간마다 모든 팀원이 동일한 고민을 해야 함 - 빠르게 변화하는 소프트웨어의 안정성을 보장할 수 없음 테스트코드가 병목이 된다면 - 프로덕션 코드의 안정성을 제공하기 힘들어짐 - 테스트 코드 자체가 유지보수하기 어렵고 새로운 짐이 됨 - 잘못된 검증이 이루어질 가능성이 생김 올바른 테스트코드란? - 자동화 테스트로 비교적.. 2023. 7. 11.
2023.05.23 저번주 금요일부터 실전프로젝트가 시작은 되었지만 우리 조는 주제를 선정하고 뒤엎는바람에 어제 오늘로해서 새롭게 시작하였다. 고심끝에 결정한만큼 좋은 결과가 나왔으면 좋겠다. 물론 나부터 열심히 해야겠지..! 2023. 5. 23.
2023.05.19 어제 클론 프로젝트가 끝났다. TIL을 너무 안쓰는데 이번에는 좀 써야겠다. 2023. 5. 19.
2023.05.11 오늘 항해 미니 프로젝트가 끝났다. 한 주간 이래저래 지내보니 한 주가 훌쩍 가버렸다. 진짜 어려워서 내가 맡은 부분만 해내고 다른 부분을 자세하게 뜯어보려고 노력했다. 내일부터 또 프로젝트 시작이던데... 홧팅해야지..! 팀노션: https://www.notion.so/SPRINT-S-A-715632e4b492445bb91d3941a992d744?pvs=4 SPRINT (미니프로젝트 S.A ) 0. 항해99 미니프로젝트 14조 www.notion.so repo : https://github.com/HangHae-Sprint/SPrint-Server GitHub - HangHae-Sprint/SPrint-Server Contribute to HangHae-Sprint/SPrint-Server develo.. 2023. 5. 11.
[Git] ignore intelliJ에 추가, 재적용 Spring Boot 프로젝트에서 application.properties 정보가 노출 될 경우 매우 위험. .gitignore에 새롭게 등록하여 로컬에서만 사용하려고 변경하려하였으나 .gitignore에 추가해도 Tracking되면서 여전히 추적 되고 있어서 이를 해결하고자 함. 기존 .gitignore에서 변경 관리를 추적하지 않기로 설정한 후 새롭게 .gitignore에 목록을 추가하게 될 경우 이미 변경 관리에 의해 관리되고 있는 파일은 .gitignore에 등록하더라도 계속 추적 될 수 있음. 이를 해결하기 위하여 추적하고 있는 캐시를 삭제한 후 새로 커밋 해주면 gitignore를 재적용 할 수 있음. git rm -r --cached . git rm -r --cached Filename gi.. 2023. 4. 18.
[TroubleShooting] Unsupported class file major version 64 & IntelliJ h2 연결 Unsupported class file major version 64 - 프로젝트를 새로 파는데 자꾸 해당 관련 오류가 발생하였다. 이상하게도 생성하자마자 계속 발생하길래 근본적인 문제가 있지않나 싶었다. - https://stackoverflow.com/questions/75878942/spring-initializr-project-results-in-unsupported-class-file-major-version-64 Spring initializr project results in Unsupported class file major version 64 When I create a new project using the Spring initializr Gradle won't build the pr.. 2023. 4. 14.
객체지향 & JVM 객체지향 - 우리가 실생활에서 쓰는 모든 것을 객체라 하며,객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것. - 객체는 클래스라는 틀에서 생겨난 실체(instance). 따라서 객체 지향 프로그램은 객체와 객체 간의 연결로 되어 있으며 각각의 객체 안에 자료구조와 알고리즘이 들어있는 것. 객체 지향 - 기능이 아닌 객체가 중심이 되며 "누가 어떤 일을 할 것인가?"가 핵심 - 객체를 도출하고 각각의 역할을 정의해 나가는 것에 초점 객체 지향 프로그래밍의 특징 1. 추상화(abstraction) - 객체들의 공통적인 특징(기능, 속성)을 도출하는 것 - 객체지향적 관점에서는 클래스를 정의하는 것을 추.. 2023. 4. 9.