본문 바로가기

전체 글47

[OOP] 객체지향 생활체조 원칙 1. 객체지향 생활체조 원칙이란?“소트윅스 앤솔러지” 라는 책에서 제시한 객체지향 프로그래밍을 잘하기 위한 9가지 원칙객체지향적으로 설계 / 구현하는 것은 단순 암기로 해결되는 것이 아니라 꾸준히 연습하는 과정을 통해 성장하는 역량이라는 의미로 “생활체조” 라는 표현을 사용합니다.❗아래 나올 9가지 원칙을 지키고 있지 않다고 해서 코드를 잘 못 짜고 있다고 할 수 없습니다. 무조건 지켜야하는 법칙이 아니므로 “이런 원칙도 있구나” 라고 참고 정도만 해주시길 부탁드립니다.2. 객체지향 생활제초 원칙 9가지1) 한 메서드에서 한 단계의 들여쓰기(indent) 만 한다.if / for / while 같이 들여쓰기가 발생하는 코드를 중첩으로 사용하는 경우, 하나의 메서드가 1개 이상의 책임을 지고 있을 수 있습.. 2024. 10. 6.
[React] react 프로젝트 생성하기 (for MacOS) 이직 준비를 하면서 사이드 프로젝트를 시작할 때, 과감하게 프론트엔드를 React 로 시작했습니다.처음 해보는 React 라 인강의 도움도 받고, 많은 블로그 포스팅들의 도움을 받아 꾸역꾸역 했던 기억이 있네요. 프로젝트라는게 한 번 만들면, 새로운 프로젝트를 만들기 전 까지는 다시 해 볼 일이 별로 없어서(아예 없기도 하죠?) 할 때 마다 까먹곤 합니다. (사실 저도 지금 하려니까 까먹어서 이참에 글로 남겨놓고 기억 안날 때 마다 제가 쓴 글 보면서 세팅하려고 합니다 ㅎㅎ.) 그래서 써놓고 써먹을라고 기록하는 포스팅이니 저 처럼 React 를 시작하는 분이나 조금 했었는데 까먹었다 하시는 분들에게 조금이나마 도움이 됐으면 좋겠네요.프로젝트 세팅 과정을 기록하는 포스팅입니다. 툴은 VS Code 를 사용.. 2024. 4. 25.
no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 현상원격 서버에 ssh 접속을 시도했더니, 아래와 같은 오류가 발생하면서 접속에 실패했다. key exchange method 를 찾을 수 없다고 하면서, 3개의 선택지를 제안해줬다.diffie-hellman-group-exchange-sha1diffie-hellman-group14-sha1diffie-hellman-group1-sha1 원인ssh 버전으로 인해 key exchange method 를 직접 지정해줘야한다.https://www.openssh.com/legacy.html OpenSSH: Legacy OptionsOpenSSH Legacy Options OpenSSH implements all of the cryptographic algorithms needed for compatibility.. 2024. 3. 31.
[MySQL] 트랜잭션 격리수준 1. 트랜잭션 격리수준(Isolation Level)트랜잭션은 각각의 세션에서 시작한 트랜잭션끼리 영향을 주지 않고, 영향을 받지 않는 독립성을 보장해야 합니다.이러한 성질을 트랜잭션의 독립성(isolation) 이라고 하며, 그 독립을 제어하는 정도를 트랜잭션 격리수준 이라고 합니다.일반적으로 사용되는 DBMS 들은 기본적으로 4단계의 격리수준을 지원하는데, 오늘은 이 격리수준에 대해 한 번 알아보겠습니다. 2. 4단계의 격리수준MySQL 을 비롯한 많은 DBMS에서 아래와 같은 4가지의 격리수준을 지원합니다.READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE위에서 아래로 내려갈 수 록, 격리수준이 엄격해지며 그에 따른 DBMS 성.. 2024. 3. 7.
[Spring] Spring AOP - 관심사 분리(부가기능과 핵심기능) 아래 포스팅을 먼저 보시면 이해에 도움이 됩니다. https://byunsw4.tistory.com/49 [Design Pattern] 프록시 패턴 & 데코레이터 패턴 0. 추가된 요구사항 이미 개발된 API 에 추가되는 기능이 발생했다고 생각해보겠습니다. 아래 Controller 는 쇼핑몰에 입점한 판매자가 해당 브랜드의 쿠폰을 등록하는 API 입니다. @RequiredArgsConstructor byunsw4.tistory.com 0. AOP AOP 란, "관점 지향 프로그래밍(Aspect Oriented Programming)" 의 약자로 부가기능과 핵심기능을 분리해서 개발하는 방법으로, 핵심기능을 구현한 비지니스 로직 내에서 부가기능을 같이 관리하는 경우, 코드의 가독성이 떨어지는 문제나 유지보수.. 2024. 2. 26.
[Design Pattern] 프록시 패턴 & 데코레이터 패턴 0. 추가된 요구사항 이미 개발된 API 에 추가되는 기능이 발생했다고 생각해보겠습니다. 아래 Controller 는 쇼핑몰에 입점한 판매자가 해당 브랜드의 쿠폰을 등록하는 API 입니다. @RequiredArgsConstructor @RestController public class CouponController { private final CouponService couponService; @PostMapping("/coupons") public ResponseEntity create(@RequestBody CouponCreateRequest couponCreateRequest) { CouponCreateDto couponCreateDto = couponCreateRequest.toDto(); Lon.. 2024. 2. 15.