본문 바로가기

전체 글

(89)
제로베이스 연습 프로젝트 포인트정리 Account ProjectAccount Project  핵심1. Dependency Injection이 스프링의 핵심 Account Project  배울점1. Builder Pattern을 통한 코드 간결화2. field값 설정의 Encapsulation을 통한 데이터 안정성 확보 및 코드간결화 (Entity to DTO to Response)3. Optional을 통한 예외처리 4. Exception을 커스텀 생성5. Unit Test 꼼꼼하게 짜기 Weather ProjectWeather Project  핵심1. Database 캐싱 : client 요청마다 날씨관련 외부API를 사용하는 대신, 하루에 Scheduling을 통해 한번 날씨정보를 로컬 DB에 저장하고 로컬DB로부터 데이터를 fetch..
스프링 부트 환경설정 (스프링 Init, Package, Configuration) 스프링부트Spring Boot는 Spring Framework의 모든 기능을 포함하면서도, 개발자가 빠르게 개발을 시작할 수 있도록 추가적인 지원과 도구를 제공합니다. spring initializer(https://start.spring.io/)를 사용한자동 설정을 통해 Spring boot project의 구조를 알아서 만들어준다.  Spring 애플리케이션 구성을 간소화합니다. 반면, Spring Framework는 수동으로 빈을 구성하고 의존성을 주입해야 합니다. 스프링부트 프로젝트 생성spring initializer : 스프링 기반으로 프로젝트를 만들어주는 스프링 부트 사이트 (https://start.spring.io/)Project (빌드관리도구) : 라이브러리를 관리해주고 빌드 및 실행을..
Spring Persistence (JPA, JDBC, Entity, Repository) Persistence Framework데이터영속성(Persistence)이란 프로그램이 꺼져도 데이터는 사라지지 않는 것, 즉, 영구저장 DB를 사용하는 데이터를 말함. DB를 다루기 위해 필요한 프레임워크를 Persistence Framework라고 한다.  Persistence Framework를 사용하면, DB관련되어 개발자가 공통적으로 작성하는 코드를 대신하여 동작시켜주어, 코드 재사용 및 유지보수에 용이하며 코드가 직관적이다. 1. DB연결 : MongoDB, Reddis, Mysql 등에 맞는 코드를 Framework가 대신 동작하여 DB에 종속적이지 않도록 해준다2. DB와의 연결상태에 따른 코드를 Framework가 대신 동작하여 DB의 연결에 대한 관리를 대신해줌- DB와 최초 연결시 D..
Test 코드 작성 테스트 시작 전 점검Fuctionaly Prototype comes First. 테스트 코드를 아무리 잘짜더라도 특정한 기능이 Missing되는 부분은 테스트 코드로 잡아줄 수가 없다. 우선은 요구하는 기능이 제대로 동작하는지 Manual Testing이 선행되고 CoreFunction이 제대로 동작하는지 확인이 완료된 후에 테스트코드가 의미가 있다. 그렇지 않으면 테스트코드도 다 수정해야됨.테스트의 중요성과거1. 방식 : 자동화하기어려운 sql중심의 코드들이 많아, 테스트케이스를 개발자가 직접 만들고, 기능을 동작시켜보는 식으로 수동적으로 진행.  2.관점 : 해당 방식은 1회성 외주 개발 후 철수하는 방식으로 진행되어, 코드의 품질보다는 기능적 완성도만 점검하는 방식이며 코드의 유지보수성에 대해서는 ..
스프링 MVC 스프링 MVC의 개념, 흐름 MVC는 R&R을 명확하게 하기 위해서 Layer을 나누는 디자인 패턴이다. Model은 데이터객체, View는 화면처리, Controller은 로직처리 후 모델과 뷰를 지정하는 역할을 분담한다.   전체 프로세스 흐름은 Disptcher servelet에서 request를 최초로 접수받고 dispatcher은 request를 url과 http method을 참고하여 어떤 controller(handler)에 request를 전송할지 판단한다. 이 판단은 각 spring method에 붙어있는 @requestmapping을 통해서 mapping 해준다. 이후 controller로 보내면 서비스 호출 등을 통해, request를 처리한 후, 사용할 뷰의 정보를 dispatche..
좋은 개발자가 되려면 ( Focus on Fundamental, API : JIT learning) Focus on Core Concepts; Design Principle/CS Knowledge etc,  API : Just in time learning Question : so to be a good programming , it is better to focus on learning principles and design pattern that are applicable all around rather than usage of api. is it commonly recommended practice? Answer :Yes, that is a commonly recommended practice and a highly effective strategy for becoming a proficient ..
스프링 부가기능 (Resource, AOP, 유효성검증, 데이터바인딩,spel) 외부자원 가져오기앱은 단순히 내부코드로만 동작할 수 없고 결국 자원을 끌어올 때가 있다. 외부 API, 외부 url, 외부 이미지, 내부 file system의 자원, 내부 패키지내 클래스라던지 등등 자원을 사용할 필요성이 있다. java 기본 라이브러리에서는 자원을 가지고오는 기능들이 충분하지않고 사용하기 어렵게 되어있어 스프링은 resource interface를 통해서 이러한 기능들을 제공한다. 각 자원의 종류별로 resource interface를 상속하는 구체적인 구현체들이 있으며 이를 사용하여 resouce를 다룬다. 그리고 스프링컨테이너인 applicationcontext에 구현되어있는 resourceloader을 사용하여서 자원들을 불러온다. 마찬가지로 applicatiocontext같은 ..
위치기반 공공와이파이 확인시스템 - 프로젝트/코드 리뷰 감상평 : 개발능력만큼 설계능력을 끌어 올릴 것1.1 좋았던점 : - http 통신, db사용, sql문, html tag,java script 등 전반적 이해도가 꽤 올라감.- DTO를 사용하면서 귀동냥으로 배운  프로젝트 중반부터는 GPT를 한몸처럼 사용하면서 개발생산성이 매우 높아짐.1.2  아쉬운점 :- 첫 프로젝트 였던만큼 head-on으로 부딪혔던 면이 많이 있었던 것같다 ; 데이터 모델링이라는 개념이 없어 순서도 조차 그리지 못하고 우선 코딩부터 시작하였고 이는 코드의 복잡성과 시행착오를 발생시킴 -> 추후 요구사항 모델링을 충실히 하여, 순서도와 데이터모델을 통해서, 중복성을 찾아내고 이를 추상화하기 위해 깊은 고민할 것. 개발능력만큼 설계능력을 끌어올릴 것 코드리뷰 : OCP원칙에 따라서..