웹(Web)/백엔드(Backend) 44

하드코딩하면 안되는이유

https://www.youtube.com/watch?v=VzsXPR25pYw 백엔드 개발자는 아래 두 종류로 나뉜다. 알고리즘+최적화 JSON+I/O(DB설계도 같이 관여) => DB설계를 어떻게 해야되는지..비판적인 시각으로 바라봐보기 자기 PR 못하는사람은 업무일지를 작성해보기. => 어떤 요구, 회의가 오갔는지, 시스템의 주요 개념단위가 어떻게 정리되었는지 등등 내가 백엔드 개발자면, 개념을 정립해서 설계를 주도권을 쥐고 전파해주면 좋다. => FE개발자와 협업할때의 상황을 보자. 기획자에게 계획을 받았으면 설계도부터 그려서 기획자가 의도한 바가 맞는지 요구사항을 확립한다. 그리고 프론트개발자에게 api등을 정리해서 전달해준다. 하드코딩 X, 기획서작성하고 테스트케이스 작성해서 만들어내야함. SI..

[JAVA] Spring boot 공부방향

1. 완전초보일때 참고할 깃허브 https://github.com/next-step/spring-learning-test next-step/spring-learning-test Contribute to next-step/spring-learning-test development by creating an account on GitHub. github.com 2. 완전 처음일때 강의추천(김영한님 로드맵따라가기) https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근..

Spring과 React/Vue/Angular 연결

웹프레임워크(ex) Spring, Django )을 통해서 정적사이트를 만들 수 있다. SPA(홈페이지는 그대로인데 내용만 바뀌는것)는 정적사이트(전체페이지가져옴)를 보완하기 위해 AJAX를 통해 구현함. 하지만, SPA를 위한 프레임워크가 있음(JS로 구성된 Angular, React, View)를 통해서 만들 수 있다. 따라서, 웹 페이지를 구축할때는 아래와 같이 한다. 프론트- JS를 이용한 React/Vue/Angular 로 웹페이지 만들기 백엔드- Java+SpringBoot로 구축 => 왜 React/Vue/Angular로만 만들지 않는가? : 대표적으로 DB를 연결하려면 Spring이 필요하다. 즉, DB외에도 다른 서비스들을 연동하려면 백엔드단으로 따로 나누어 Spring의 도움이 필요한것..

객체지향 디자인패턴1 feat.예시로 이해

1. 싱글톤 패턴(Singleton Pattern) : 다크모드를 각 페이지에 적용할때, 생성자를 private으로 만들어서, 다른페이지에서 그대로 가져다 쓰게 만드는 것이라고 본다. 2. 전략 패턴(Strategy Pattern): 각 버튼에 따라서 다르게 검색. if문에 따라서 onclick메소드를 바꾸는것. => 좋지 않음. 모드마다 동작 하나하나를 다르게 갈아껴주는 방식. 옵션마다 implements. 3. 상태 패턴(State Pttaern) : 전략패턴과 비슷하지만 메소드가 실행될때 모드도 전환되는것. 4.커맨드 패턴(Command Pattern) : 그리드에서 로봇이 움직이는 것. => 추상클래스로 Command. Kit를 만들어서 수행하게 할 수 있음. 5. 어댑터 패턴(Adapter Pa..

스프링 XML --> JAVA Configuration으로 변경

1. @Configuration 2. @ComponentScan("spring.di.ui") 3. @Bean : 우리가 만든것을 컨테이너에 담아준다. NewlecDIConfig.java 를 만들어 JAVA Configuration을 한다. @ComponentScan("spring.di.ui") @Configuration public class NewlecDIConfig{ @Bean //public Exam getExam(){ //반환할때, 인터페이스로 받기 때문에 public Exam exam(){//id의 이름으로 메소드를 만드는것이 바람직 return new NewlecExam(); } } ApplicationContext context = new AnnotationConfigApplicationCo..

스프링 어노테이션을 이용한 객체생성/초기값(@Value)

소스코드로 옮기는작업을 하는것이다. Component-scan이 꼭 필요함을 알려줌. 더보기 www.youtube.com/watch?v=DNrkw3pAsAM&list=PLq8wAnVUcTFWxnsrMu5kS_jt_o8gpEiTR&index=15 www.youtube.com/watch?v=pyMzPpK4uXk&list=PLq8wAnVUcTFWxnsrMu5kS_jt_o8gpEiTR&index=16 "spring.di.ui"라는 패키지 안에 들어가서 클래스들이 있을텐데, 거기 들어가서 클래스 읽어줄래? 스캔해봐서 component가 있는지 찾아봐. 거기 컴포넌트가 있으면 객체화 시켜줘. @Component를 읽으면 안쪽에 있는 걸(Autowired부분) 읽어버림. 따라서 XML부분에서는 객체 생성하는부분을 다..

스프링 어노테이션(Annotation), @AutoWired과 @Qualifer

1. XML로 설정 XML을 매번 바꿔야되므로 귀찮으니 발전해서 소스코드를 읽게해줌. -> 따라서 java코드에서 @Component를 인식해서 객체화함 @Autowired를 통해서 Xml에 있던객체를, 코드에다가 객체를 모두 박아버리는것이다. 위 한줄만 추가해주면 된다. => 객체를 만들어놓고 "그 안을 들여다봐라" 라는 뜻 => 그래야 @Autowired를 통해서 안을들여다보고 자동으로 설정 (추가해주지 않으면 탐색을 하지 않으므로 NullPointerError 뜬다.) @Autowired : 자동으로 연결해준다는것은 문제가 될 수 있다. @Qualifer : 객체가 여러개일때 식별이 모호할경우 명시해주기 위해 사용한다. bean에 모호한 exam이 여러개 등록되어있다. id="exam"으로 하면 @..

스프링 IoC 컨테이너 사용(ApplicationContext 사용)

"어떻게 만들어달라"는 지시서를 전송 1. maven사용 -> spring.io 라이브러리를 pom.xml에 불러옴. 2. ApplicationContext 사용. ClassPathXmlApplicationContext로 생성. 두가지 방식 다 된다. 첫번째 방법: Bean이라는 녀석을 만드는데 이름가지고 "console"이라는 애를 꺼내면, 형식변환을 해서 써야함. => 객체에 대한 형식을 모르기때문에 Object형으로 나오므로 형변환해야함. 두번째 방법: 자료형 명으로 꺼낼 수 있다. => 인터페이스 형식(ExamConsole.class)에 참조된 녀석을 찾아서 거기에 맞게 얻어다줌. 값 형식 DI 위처럼 property value값을 넣어줄 수 있다. 생성자로 받는것은 java코드는 아래와같다. 그..