목록전체 글 (117)
마이의 개발 블로그
코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 문제상황요약 - 참가자명단(participant)의 길이가 완주자명단(completion)의 길이보다 1이 길다 -> 두 배열을 비교하며 completion에 없는 한 명만 찾으면 된다 - 동명이인이 있을 수 있다 유의사항 - 두 배열을 정렬먼저 하고 시작하면 비교가 쉬워진다 - 정렬 이후 비교 시 동명이인의 존재 여부는 신경쓸 필요가 없어진다 - 한 명만 찾으면 되기 때문에 명단에서 누군가를 삭제하거나 찾았다는 표시를 할 필요도 없다 작성 ..
REST란? Representational State Transfer (REST) - 로이 필딩(Roy Fielding)에 의해 2000년도에 제시된 네트워크 아키텍처 원리의 모음임 - 디자인 원리이기 때문에 특정 프레임워크, 환경, 언어 등에 구애받지 않음 - RESTful : REST의 원리에 충실한 디자인을 지칭할 때 RESTful하다고 표현함 REST 구성 요소 - 자원(resource) : URI - 행위(verb) : 주요 HTTP 메서드 5개(get, post, put, patch, delete)를 주로 사용 - 표현(representation) REST의 디자인 원칙 1. 인터페이스 일관성 - 일관적인 인터페이스로 분리되어야 함 - 요청이 어디서 오는지에 관계없이 같은 표현으로 응답함 2...
MVC패턴이란? - UI 개발에 널리 사용되는 소프트웨어 디자인 패턴으로 모델, 뷰, 컨트롤러의 세 가지 요소를 가지고 있음 - 데스크탑 GUI에 전통적으로 사용되어왔기 때문에 사용자가 의식하지 못할 뿐 다양한 앱에서 사용되어옴 - 여러 프로그래밍 언어에서 MVC 패턴을 구현하는 프레임워크를 찾을 수 있음 사용 목적 - 비즈니스 로직과 화면을 분리하기 위함 - 관심사 분리 (separation of concern, SoC) : 코드의 단순화, 더 나은 유지보수성을 가능하게 함 구성 요소 1. 모델 - 직접적으로 앱의 데이터, 로직, 규약을 다루는 앱의 가장 중심이 되는 구성요소임 - UI로부터 독립적인 앱의 동적 데이터 구조임 - 컨트롤러로부터 사용자 입력(user input)을 받음 2. 뷰 - 정보를..
배경 개인 프로젝트로 React.js + SpringBoot 조합으로 일기예보 서비스를 만들어보고 있습니다. 이 프로젝트는 기존 학원 팀프로젝트에서 사용했던 Spring Legacy Project (JSP + Spring)를 벗어나 다른 기술, 특히 학습해놨던 React.js를 한 번 사용해보는게 목적이어서 프론트와 백엔드를 분리하고 간단하게 작업해볼 요량으로 시작했던 프로젝트였습니다. 근데 생각보다 기상청 단기예보 API 사용법을 숙지하고 데이터를 내가 필요한 방향으로 가공하는 데에 시간을 많이 사용하게 되어 사실상 React보다도 API를 공부하는 느낌이 더 강하게 드는 것 같네요. 기상청 단기예보 API 기상청 단기예보 API는 호출방법에 따라 아래 네 개 유형의 데이터를 보내줍니다. - 초단기실황..
오버라이딩(overriding) - 부모 클래스로부터 상속받은 메서드의 내용을 재정의하여 사용하는 것을 의미함 (=overwrite) - 자녀 클래스에서 오버라이딩되는 메서드는 조상 클래스의 메서드와 이름, 매개변수, 반환타입이 같아야 함 오버라이딩 주의점 - 자녀 클래스의 메서드는 조상(부모) 클래스의 메서드보다 접근자의 범위가 좁을 수 없음 *조상 클래스의 메서드가 protected일 때, 자녀 클래스의 메서드는 protected 또는 public만 가능함 - 자녀 클래스의 메서드는 조상(부모) 클래스의 메서드보다 예외의 수가 많을 수 없음 *조상 클래스의 메서드에 IOException 선언 시, 자녀 클래스의 메서드는 Exception이 될 수 없고 그 반대는 가능함 - 오버라이딩시 인스턴스 메서드..