일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- REDIS
- 백준
- 프리코스
- Docker
- 자바
- JUnit5
- 우아한테크코스
- Spring Batch
- 레벨2
- 스프링 부트
- 스프링부트
- 트랜잭션
- AWS
- AOP
- MSA
- yml
- mock
- Level2
- 미션
- 세션
- 서블릿
- 우아한세미나
- 우테코
- 의존성
- JPA
- 코드리뷰
- HTTP
- CircuitBreaker
- Paging
- 프로그래머스
- Today
- Total
목록백앤드 개발일지 (72)
늘
TDD(Test Driven Development): 테스트 주도 개발 짧은 개발 서클을 반복하는 SW 개발 프로세스 중 하나이다. 자동화된 테스트 케이스를 먼저 작성한 후, 테스트 케이스를 통과하기 위한 최소한의 코드를 작성, 그 후 코드에 대한 리펙토링을 진행한다. 즉, 테스트 코드 작성-> 테스트 코드를 성공시키기 위한 최소한의 코드 구현-> 코드 리팩토링 특징 코드량이 많아지면 기능 별로 함수를 나누게 되는데 그 과정에서 테스트 코드가 중심을 잡아줄 수 있다. 개발하다 에러가 나도 테스트를 함으로써 금방 복구가 가능하다. BDD(Behavior-Driven Development): 행동 주도 개발 TDD에서 파생된 개념으로 BDD는 테스트 케이스 자체가 요구 사양이 되도록 개발하는 것이다. TDD..
스프링 프레임워크란? - 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다. - 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다 특징 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. 제어 반전(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다. 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다. 관점 지향 프로그래밍(AOP : Aspect-Oriented Pro..
클린 코드란? 한마디로는 가독성 좋은 코드, 코드를 작성하는 의도나 목적이 명확해야 하고 다른 사람이 쉽게 읽을 수 있는 코드를 말한다. 1. 의미있는 이름 & 네이밍(Naming)과 주석달기 범용적으로 사용되는 단어는 사용하지 않는게 좋다. 연속된 숫자는 피하는게 좋다. 의도를 분명히 밝혀라 주석은 반드시 필요한 경우에만 작성하는것이 좋다. (설명을 위한 설명은 달지 않는다.) getActiveAccount(); getActiveAccounts(); getActiveAccountInfo(); //3가지 모두 getAccount()와 구별이 어렵다 //다른 예시로 customerInfo는 customer와 차이가 없으므로 더 명확하게 이름을 짓자 발음하기 쉬운 이름을 사용하라 & 검색하기 쉬운 이름을 사..
화창한 오후..시험도 끝나고 오랜만에 블로그도 정리할겸 확인해보는데 정작 JPA대한 정리가 없었다!!..그래서 오늘은 JPA에 대해서 공부해왔던 내용을 정리해보려고 한다 JPA(Java Persistence Api) JPA가 나온 배경을 보자면, 기존의 MyBatis와 같은 SQL매퍼를 이용한 데이터베이스의 작성은 객체지향과는 거리가 멀다. 그래서 객체 모델링보다는 테이블 모델링에 집중하는 모습을 해결하기 위해서 JPA라는 자바 표준 ORM기술이 나오게 되었다.(* ORM은 객체를 매핑하는 것이고, MyBatis와 같은 SQL Mapper는 쿼리를 매핑하는 것) 관계형 DB는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술이고, 객체지향 프로그래밍은 메시지를 기반으로 기능과 속성을 관리하는 기술이다. --..
웹스크래핑(크롤링) 기초 bs4 크롤링 기본 세팅 import requests from bs4 import BeautifulSoup # 타겟 URL을 읽어서 HTML를 받아오고, headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'} data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers) # HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한..
멋쟁이 사자처럼에서도 웹에 대해 공부했지만 이번에 한이음을 하면서 스파르타 코딩에서 한번 더 웹에 대해서 배울수 있었다. HTML은 뼈대, CSS는 꾸미기 그렇다면 멋사에서는 배우지 못했던 js에 대해서 정리하고 시작하려고 한다. 자바스크립트(js)는 프로그래밍 언어 중 하나로, 브라우저가 알아들을 수 있는 언어이다. Q. 왜 브라우저는 Javascript만 알아들어요? HTML안에다 파이썬, Java 같은 언어를 써서 주면 안되나요? A. 불가능한 이야기는 아닙니다. 다만, 이 "역사적인 이유 & 이미 만들어진 표준"이기 때문에, 모든 브라우저는 기본적으로 Javascript를 알아듣게 설계되어있고, 모든 웹서버는 HTML+CSS+Javascript를 주게 되어있죠. jQuery 란? HTML의 요소들..
https를 써도 GET으로 보내면 브라우저 히스토리엔 주소가 남는다. 사용자 컴퓨터에 브라우저 기록을 외부로 전송하는 악성 코드가 있으면 보안에 이슈가 생긴다. 네트워크에서 안전이란 리소스 변경이 일어나지 않으면 안전 ex) get 안전 GET 방식으로도 Requestbody 붙일 수 있다. 그럼에도 불구하고 보안상 POST가 더 좋다. GET은 url에 정보가 오픈되니깐. [REST 구성 스타일] client-server stateless cache uniform interface
Continuous Integration(CI)와 Continuous Delivery(CD) CI CI(Continuous Integration)는 개발자가 공유 버전 제어 저장소에서 팀의 코드를 컴파일 할 수 있도록 함으로써 빌드 주기 비효율성을 줄이기 위한 프로세스입니다. 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합되므로 여러 명의 개발자가 동시에 어플리케이션 개발과 관련된 코드 작업을 할 경우에서 발생하는 충돌을 해결할 수 있습니다. CD 지속적인 서비스 제공(Continuous Delivery) or 지속적인 배포(Continuous Deployment) 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 레포지토리에 자동 업로드 ..
저번에 jwt토큰 방식에 대해서 설명을 드리고 이번에는 스프링의 전통 기반인 session 인증 방식에서 간단하게 적용해 보려고 해요. 이번 포스트는 세션 방식으로 웹페이지 로그인, 회원가입을 구현하면서 느낀 점을 적어보려고 합니다...! 이번 포스트도 이용한 프레임워크는 springboot + gradle + h2 + springsecurity입니다. package board.configuration; import board.Service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springfra..
Jwt와 Session방식의 차이에 대해서 공부했다. 우선 우리가 사용하는 스프링 부트는 Session기반으로 작동되어 있다고 한다. 그래서 평소 자연스럽게 이용했던 세션을 통한 인증 관리가 아닌 이번에는 JWT를 이용하여 회원 인증과 권한을 관리해보려고 한다..! 그전에 잠깐 Session&Cookie 기반 인증방식과 Token(jwt) 기반 인증 방식의 차이를 간단하게 설명해 보겠다. Session & Cookie 유저가 로그인하고 세션이 서버 메모리 상에 저장된다. (서버 단에서 메모리 차지가 클 수 있다.) session Id를 기준으로 정보를 전달한다. 브라우저에 쿠키로 session Id를 저장 -> 쿠키로 보내진다. JWT(Json Web Token) 방식 Header, Payload, Si..