반응형 분류 전체보기338 [Git] 커밋 변경 내역에서 특정 파일/키워드 삭제하기 😄 서론 준 덕분에 ✨넥스트스텝의 김민주님, 임성현님의 Git 발표✨를 듣게 되었다. 발표는 실습을 바탕으로 진행되었는데 너무 인상 깊었고 신기했고.. 무엇보다 나중에 쓸 일이 생길 것 같았다.😇 관련 내용을 포스팅해도 되는지 여쭤보고 허락 하에 포스팅 한다. 흔쾌히 허락해주신 민주님, 성현님과 말을 전달해주신 준 모두 감사합니다. 😊 😨 만약 내가 중요한 정보를 GitHub에 올렸다면... 관리자 계정의 ID, password를 하드코딩해놓고 그대로 GitHub에 올려버렸다면? 데이터베이스의 주소, 비밀번호 등이 다 드러난 설정 파일을 그대로 GitHub에 올려버렸다면??? 다신 이런 실수를 하지 않겠다는 다짐은 당연하고!! 이미 일어난 일을 어떻게 해결해야 할까? 1. https://rtyley.gi.. 2022. 3. 31. NFT가 붐인 이유? (feat. NFT란?) 서론 내 주변에는 게임을 좋아하는 사람이 많다. 그런 친구들과 대화하다 보면 자연스레 게임 이야기를 많이 한다. 그 중 NFT에 대한 이야기가 꽤 흥미로웠다. 이게 뭔지 왜 적용했는지 개발자로서의 호기심이 동해 글을 작성하게 되었다. NFT란? = Non-Fungible Token = 대체 불가 토큰 블록체인에 등록된 고유한 디지털 인증서 예술 작품이나 수집품 같은 자산의 소유권을 기록하는 데 사용 ❓ 대체 불가 토큰 Fungibility: 한 물체가 다른 물체로 대체 가능함 (ex: 돈) Non-Fungible: 동일한 경제적/정서적 가치로 대체될 수 없음 (ex: 엄마가 사준 지갑 != 길 가다 아무거나 산 지갑) ❓ 블록 체인 :데이터를 네트워크에 연결된 여러 컴퓨터에 저장하는 분산형 데이터 저장 .. 2022. 3. 25. [우테코] 블랙잭 미션 2단계 학습 로그 목차 1. GitHub 저장소 2. 새로운 요구사항 3. 리팩터링 4. 생각하기 5. 셀프 회고 1. GitHub 저장소 GitHub: https://github.com/yeon-06/java-blackjack/tree/step2 Pull Request: https://github.com/woowacourse/java-blackjack/pull/321 1단계 학습 로그: https://yeonyeon.tistory.com/207 2. 새로운 요구사항 배팅 금액 입력 받기 1000원 단위로 입력 가능 음수 입력 불가 (딜러를 제외한) 플레이어는 배팅 금액을 필수로 입력받아야 함 수입 금액 플레이어 버스트: 배팅 * 0 플레이어 블랙잭: 배팅 * 1.5 딜러 + 플레이어 블랙잭: 배팅 금액 돌려받기 딜러 버.. 2022. 3. 20. [Java] 인터페이스를 사용하자! 자바는 다중 구현을 위해 인터페이스, 추상 클래스 기능을 제공한다. 그러면 어느 것을 사용하는게 더 좋을지 한번 고민해보자! 🤗 인터페이스의 장점 ❗ 자유로운 추가 자바는 단일 상속이 조건이다. 이러한 관점에서 추상 클래스 방식은 새로운 타입을 정의하는 데 커다란 제약이다. 예를 들어 개발 도구는 컴퓨터, 안드로이드 개발자에게는 삼성폰, IOS 개발자에게는 아이폰 등으로 나눌 수 있다. 그렇다면 'Computer ⊂ DevelopmentTool'로 표현할 수 있다. 이번에는 게임기를 생각해보자. 게임기에는 컴퓨터, 스위치, 닌텐도, 플스 등등 여러가지가 있다. 그렇다면 'Computer ⊂ GameMachine'로 볼 수도 있겠다. 그런데 위에서 말했다시피 자바는 단일 상속이 조건이라 아래와 같은 표현이.. 2022. 3. 18. [우테코] 블랙잭 미션 1단계 학습 로그 목차 1. GitHub 저장소 2. 구현 기능 목록 3. 새로운 도전 4. 생각하기 5. 회고 6. 앞으로 할 일 1. GitHub 저장소 Repository: https://github.com/yeon-06/java-blackjack/tree/step1 Pull Request: https://github.com/woowacourse/java-blackjack/pull/220 2. 구현 기능 목록 참여할 사람의 이름 입력 쉼표 기준으로 분리 (e) 빈 값, 공백 불가 (e) 중복 불가 카드 분배 딜러, 참가자에게 카드 2장씩 분배 딜러의 카드 1장 출력 참가자의 카드 2장 출력 참가자의 카드 합이 21이면 게임 종료 참가자 카드 추가 분배 카드 합이 21 이상인 참가자는 턴 종료 참가자 별로 한장의 카드.. 2022. 3. 15. [Java] Inheritance(상속) vs Composition(조합) 목차 상속; Inheritance 조합; Composition 질문 사항 상속보다는 컴포지션을 써야한다? 상속 설계 시 hook을 주의하자. 상속용 클래스의 생성자에서 재정의 가능한 메서드 호출 금지 Cloneable과 Serializable 인터페이스를 조심해라? 상속을 금지하는 방법 도우미 메소드 활용하기 ✨ 상속; Inheritance 먼저 상속에 대해서 알아보겠다. 상속은 코드 재사용을 쉽게 해주지만 잘못 사용하면 오류나기 쉽상이다. 또한 메소드 호출과 달리 캡슐화를 깨뜨린다. 상위 클래스의 변경이 하위 클래스까지 영향을 줄 수 있기 때문이다. 상속용 클래스는 재정의 가능한 메소드들을 내부적으로 어떻게 이용하는지, 어떠한 상황에서 호출할 수 있는지 등을 문서로 남겨야 한다. 🔻 API 문서에 대해.. 2022. 3. 14. [Java] 중첩 클래스의 종류 (feat. 멤버 클래스는 static으로!) 😏 서론 지난 번 클래스와 멤버의 접근 권한을 최소화해야 하는 이유에 대해 공부해보았다. 한 클래스에서만 사용하는 클래스는 private static으로 중첩시키라는 말이 있었는데 이 이유에 대해 자세히 알아보자. ❓ 중첩 클래스란? : 다른 클래스 안에 정의된 클래스 자신을 감싼 바깥 클래스에서만 사용되어야 함 (그 외 쓰임새가 생기면 톱 레벨 클래스로 생성) 컴파일 시 바깥클래스$중첩클래스.class 형태로 컴파일 됨 public class Animal { // 바깥 클래스, 가장 바깥에 있으므로 톱 레벨 클래스 // ... public class Kinds { // 중첩 클래스 // ... } } 📚 중첩 클래스의 종류 정적 멤버 클래스 비정적 멤버 클래스 익명 클래스 지역 클래스 정적 멤버 클래스.. 2022. 3. 14. [Spring Security] 초간단 로그인 만들기 이전부터 아주 천천히 진행하고 있던 토이 프로젝트의 로그인 기능을 드디어 구현했다. 이번 달 ~ 다음 달 안에는 종료되어야 마음이 편할텐데 가능하..겠지..?😂 본 포스팅에서는 복잡한 로직 다 빼고 Spring Security를 적용만 해보는 과정을 담았다. 1. 준비 🔻 이전 글 참고: https://yeonyeon.tistory.com/185 [Spring Security] 스프링 시큐리티 간단 적용기 본 글은 토이 프로젝트에 Spring Security를 적용하는 과정에 대해 포스팅한다. Spring Security에 관한 디테일한 이론 지식이나 동작 원리 등에 대해서는 생략한다. 1. 개요 Spring Security : J.. yeonyeon.tistory.com 2. 동작 방식 먼저 Sprin.. 2022. 3. 7. [Java] 접근 권한을 최소화해야 하는 이유 이 포스팅에 들어가기 앞서 잘 설계된 컴포넌트란 무엇인가?에 대해서 생각해보도록 하자. 우리가 컴포넌트를 설계할 때 중요한 것이 뭘까? 어떤 컴포넌트를 잘 설계되었다고 표현할까? ✨ 잘 설계된 컴포넌트 클래스 내부 데이터와 구현 정보를 외부로부터 잘 숨긴 컴포넌트 서로의 내부 동작 방식을 모른채 API를 통해 다른 컴포넌트와 소통 👉 결국은 정보 은닉, 캡슐화가 중요한 포인트라고 볼 수 있다. 🔻 정보 은닉이란? 더보기 : 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용하는 것 정보 은닉으로 인한 장점 여러 컴포넌트를 병렬로 개발 가능 👉 시스템 개발 속도↑ 각 컴포넌트를 더 빨리 파악할 수 있고 교체 부담도 적음 👉 시스템 관리 비용 ↓ 성능 최적화에 도움 소프트웨어의 재사용성 ↑.. 2022. 3. 6. 이전 1 ··· 13 14 15 16 17 18 19 ··· 38 다음 반응형