전체 글

전통적으로 클라이언트가 클래스의 인스턴스를 얻는 방법은 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..
· AWS
이전 글과 이어지는 글입니다. 이전 글은 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
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..
1. apt-get 도구 업데이트 sudo apt-get update 위의 명령어를 입력해준다. 그리고 설정한 가상머신 비밀번호를 입력해준다. 2. apt-get 도구 업그레이드 sudo apt-get upgrade 위의 명령어를 입력해준다. 3. desktop 설치 sudo apt-get install ubuntu-desktop 위의 명령어를 입력해준다. 설치가 진행되다가 계속할거냐고 물어본다. y 입력~~ 그러면 다시 설치가 진행된다. 시간이 좀 걸리니 차분히 기다리기~~ sudo reboot 설치가 완료되면 위의 명령어를 입력해 가상머신을 재부팅한다. 그러면 이렇게 깔끔한 GUI가 등장! 설정한 비밀번호를 입력해주면~~~ 짜잔~~