https://codegarden-farmjun.tistory.com/81 [JAVA] 생성자 대신 팩토리 메서드를 고려하라 전통적으로 클라이언트가 클래스의 인스턴스를 얻는 방법은 public 생성자이다. 하지만, 클래스는 생성자와 별도로 정적 팩토리 메서드(static factory method)를 제공할 수 있다. 정적 팩토리 메서드는 codegarden-farmjun.tistory.com 이전 글에서 생성자와 정적 팩토리 메서드에 대하여 알아봤다. 이전 글에서 언급하지는 않았지만 생성자와 정적 팩토리 메서드 모두 공통된 단점이 있다. 바로 선택적 매개변수의 개수가 많으면 대응하기 어렵다는 것이다. public class SubwaySandwich { // 필수 요소 private String nam..
분류 전체보기
전통적으로 클라이언트가 클래스의 인스턴스를 얻는 방법은 public 생성자이다. 하지만, 클래스는 생성자와 별도로 정적 팩토리 메서드(static factory method)를 제공할 수 있다. 정적 팩토리 메서드는 네이밍에서 알 수 있듯이 정적인 팩토리 메서드이다. 그렇다면 팩토리란 무엇일까? GoF 디자인 패턴 중 팩토리 메서드 패턴이 존재한다. 이는 인스턴스 생성을 위한 프레임워크와 실제 인스턴스를 생성하는 클래스를 분리할 때 사용하는 패턴이다. 여기서 유래가 되어 팩토리는 객체 생성의 역할을 분리하겠다는 의미가 담겨있다. 정리하자면 정적 팩토리 메서드는 객체 생성이란 관심사를 갖는 정적 메서드라고 해석할 수 있다. 글 제목에서 알 수 있듯이 생성자보다 정적 팩토리 메서드가 갖는 장점이 많다. 한 ..
22년도 상반기 회고글을 처음이자 마지막으로 벌써 일 년이 지났다.. 22년 하반기는 회고글은 작성하지 못한 것이 아쉽다.. 그래서 23년 상반기 회고글도 나중에 후회하기 전에.. 지금이라도 써보려고 한다.! 1. 팀 프로젝트 https://codegarden-farmjun.tistory.com/69 [UMC] 인하대 UMC 3기 최종 합격! + 서류, 면접에 대하여 UMC란? UMC는 University Makeus Challenge의 약자이다. 이름에서 알 수 있듯이 Makeus에서 뻗어 나온 대학생을 위한 연합 동아리이다. 유명한 CMC(Central MakeUs Challenge) 보다는 개발을 처음 접하는 대학생들을 codegarden-farmjun.tistory.com 저는 22년 9월부터 2..
이전 글과 이어지는 글입니다. 이전 글은 EC2 인스턴스 생성에 대해 다루니 필요하시다면 참고하세요. https://codegarden-farmjun.tistory.com/78 [AWS] EC2 와 RDS 연동(1) / EC2 인스턴스 생성 및 탄력적 IP 연결 AWS를 아예 처음 접하는 분들을 기준으로 처음부터 진행하겠습니다. 1. AWS 회원가입 및 로그인 AWS에서 제공하는 서비스를 사용하려면 당연히 AWS 회원가입 후에 로그인을 해야 합니다. 로그인 후 codegarden-farmjun.tistory.com 1. RDS와 연동할 EC2의 정보 EC2와 RDS를 연동해야 하니, RDS와 연결할 EC2 인스턴스의 정보를 파악해야 합니다. 빨간 박스 친 부분들을 기억해 주세요! 2. 보안 그룹 생성 e..
AWS를 아예 처음 접하는 분들을 기준으로 처음부터 진행하겠습니다. 1. AWS 회원가입 및 로그인 AWS에서 제공하는 서비스를 사용하려면 당연히 AWS 회원가입 후에 로그인을 해야 합니다. 로그인 후 우측 상단에서 지역을 서울로 변경해 주세요. 2. EC2 시작 검색 창에 "ec2"를 검색하면 나오는 EC2 서비스를 클릭해 주세요. 왼쪽 메뉴바에서 "인스턴스"를 클릭한 후 보이는 화면의 우측 상단에 위치한 "인스턴스 시작"을 클릭해 주세요. 3. 이름 설정 및 애플리케이션 및 OS 이미지 선택 인스턴스의 이름은 원하시는 것으로 입력해 주세요. 저는 Ubuntu를 사용할 것이기에 Ubuntu를 선택해 주고, 프리 티어로 사용 가능한 "Ubuntu Server 20.04 LTS"를 선택했습니다. 4. 인스..
*학부에서 배운 강의 내용을 바탕으로 작성되었습니다* ISA(Instruction Set Architecture) 소프트웨어와 하드웨어 사이의 인터페이스를 정의하는 명령어의 집합이다. 명령어와 machine states(레지스터 + 메모리)를 정의한다. 명령어 형식(Instruction Format) Opcode(연산코드) : 수행될 명령어를 지정한다. (EX. mov, add jump etc.) 4비트를 할당하고 있어, 최대 2^4=16개의 서로 다른 연산코드 사용이 가능하다. 연산코드 목록의 일부 0001 = 메모리에 저장된 값을 AC에 적재 0010 = AC에 저장된 값을 메모리에 저장 0101 = 메모리에 저장된 값을 AC에 더함 Operands(피연산자) : input/output 데이터와 주소..
*학부에서 배운 강의 내용을 바탕으로 작성되었습니다* 컴퓨터의 기본 구성 요소(Computer's Basic Componets) 컴퓨터는 크게 4가지로 구성된다. 1. 처리기(processor) : 컴퓨터의 동작을 제어하고 데이터를 처리한다. 처리기가 하나만 있는 경우를 일반적으로 중앙처리장치(CPU, Central Procession Unit)라고 한다. 2. 주기억장치(main memory) : 데이터와 프로그램을 저장한다. 일반적으로 휘발성(volatile)이기 때문에, 컴퓨터의 전원이 꺼지면 메모리의 내용이 사라진다. 반면에 디스크의 메모리는 비휘발성(nonvolatile)이기 때문에, 컴퓨터의 전원이 꺼져도 유지된다. 주기억장치는 실기억장치(real memory) 혹은 주 메모리(primary ..
*학부에서 배운 강의 내용을 바탕으로 작성되었습니다* 컴퓨터 알고리즘이란? "컴퓨터를 사용하여 문제를 해결하기 위한 상세한 단계별 방법"이라고 말할 수 있습니다. 컴퓨터를 사용해 문제를 해결하는 법 문제를 해결하는 법은 크게 6가지 단계로 나눌 수 있습니다. Problem Stratege Algorithm Input Output Step Analysis Correctness Time & Space Optimality Implementation Verfication 1. Problem : 어떤 문제를 해결할지 정의합니다. 이때 문제는 명시된 입력과 출력으로 정의됩니다. 2. Strategy : 문제를 어떠한 전략을 통해 해결할지 결정합니다. 3. Algorithm : 결정한 전략대로 문제를 해결하려면 어떠..
https://codegarden-farmjun.tistory.com/73 [Java] Jsoup을 사용해서 크림(KREAM) 웹 스크래핑하기 Jsoup을 사용하게 된 이유 현재 진행 중인 앱런칭 프로젝트에서 리셀 상품들의 데이터가 필요하게 됐습니다. 팀원들과 회의 결과 데이터의 크기가 가장 거대하고 신뢰가는 데이터들이 존재하는 codegarden-farmjun.tistory.com 이전 글과 내용이 이어지므로, 해당글의 내용을 이해를 돕기 위해 먼저 읽으면 도움이 될 것입니다. Selenium을 사용하게 된 이유 크림에서 누적 거래 데이터를 스크래핑하기 위해서는 사이트 로그인이 필수였습니다. Jsoup으로 로그인 후 데이터를 스크래핑하기 위한 코드를 짜보고 싶었지만, 생각보다 잘 구현이 되지 않아 막막..
Jsoup을 사용하게 된 이유 현재 진행 중인 앱런칭 프로젝트에서 리셀 상품들의 데이터가 필요하게 됐습니다. 팀원들과 회의 결과 데이터의 크기가 가장 거대하고 신뢰가는 데이터들이 존재하는 크림(KREAM)사이트를 스크래핑하여 데이터들을 모으기로 했습니다. https://kream.co.kr/ KREAM | 한정판 거래의 FLEX 한정판을 거래하는 가장 확실한 방법 kream.co.kr 스크래핑을 어떤 기술을 사용하여 진행할지 결정해야했습니다. 아무래도 웹 스크래핑이 처음이다보니 다양한 라이브러리들을 사용해본 후 결정하기로 했습니다. 그래서 먼저 Jsoup 라이브러리를 사용해 스크래핑을 진행했습니다. IntelliJ IDEA에서 Jsoup 라이브러리 추가하기 https://jsoup.org/download..