본문 바로가기

전체 글11

42Philosophers 1. 프로세스와 스레드의 차이 Process & Thread 1. 프로세스와 스레드의 정의 프로세스: 운영체제로부터 자원을 할당받은 작업의 단위. 스레드: 프로세스가 할당받은 자원을 이용하는 실행흐름의 단위. 2. 프로그램 → 프로세스 → 스레드 2.1. 프로그램 → 프로세스 프로세스와 스레드에 대한 설명에 앞서 프로그램에 대해 알아보자. 프로그램의 정의는 파일이 저장장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태이다. 메모리에 올라가 있지 않다는 말은 아직 운영체제가 프로그램에게 독립적인 메모리 공간을 할당해주지 않았다는 뜻이다. 모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해주어야 실행될 수 있다. 정적인 상태라는 말은 단어 그대로 움직이지 않는 상태라는 뜻이다. 다시말.. 2022. 5. 19.
배달의민족 클론코딩 - erd 설계하기 배달의 민족을 클론코딩 하기 위해 erd를 먼저 설계해 보았다. 해당 erd는 아래 링크에서 한 눈에 자세히 볼 수 있다. 🔗ERD by Aquery Tool Password : c4142h User 관련 테이블 Users User_address & User_coupons 두 테이블 모두 유저와 1:N 관계로 유저 id를 FK로 가진다. User_coupons 테이블 에서는 같은 쿠폰을 여러명의 유저가 가질 수 있으므로 coupon_id 또한 FK로 가진다. Store 관련 테이블 Stores 가게 카테고리 : 가게 = 1 : N 이므로 Stores테이블에서 카테고리 식별번호를 FK로 설정 delievery_fee 주문 금액에 따라 배달비가 다르게 책정되는 것을 테이블로 보여주기 위함 Store_imag.. 2022. 5. 2.
배달의민족 클론코딩 - 화면 별 MySQL 쿼리 작성하기 배달의 민족 API 짜기에 앞서, 직접 설계한 erd를 바탕으로 몇가지 앱 주요 화면에 대한 쿼리문을 작성해보았다. 설계한 erd는 다른 글에 올려 놓았다. 1. 카테고리 별 가게 리스트 "치킨" 카테고리 선택했을때 보이는 가게 리스트 SELECT S.store_name AS 가게이름, S.average_rating AS 별점, S.store_description AS 가게설명, S.min_price AS 최소주문금액, S.delivery_fee AS 배달비, CONCAT(S.min_required_time, "~", S.max_required_time) AS 소요시간, S.is_takeout_available AS 포장가능여부, I.store_image_url AS 이미지url FROM Stores S.. 2022. 4. 30.
AWS RDS 구축하기(MySQL) 외부에서 데이터베이스에 접속할 수 있도록 퍼블릭 액세스 가능을 '예'로 설정했다. VPC 보안그룹은 새로 만들어주었다. 조금 기다리면 데이터베이스가 생성 완료 된다. 새로운 파라미터 그룹을 생성해 준 뒤, 만든 그룹의 파라미터를 몇가지를 수정했다. 먼저 time_zone을 Asia/Seoul로 변경해주었다. character_set파라미터들을 이모티콘까지 포함한 문자들을 읽을 수 있는 uft8mb4로 변경해주었다. 추가로 collation_server, collation_connection도 맞춰서 uft8mb4로 바꾸어주었다. 생성한 데이터베이스의 연결 보안 창에 뜨는 엔드포인트를 Host로 DataGrip에서 외부접속을 시도했다. 외부접속 성공! 2022. 4. 28.
AWS 서버 구축하기(3) / Domain, HTTPS, Sub Domain, Redirection 적용 도메인 주소 연결하기 지금까지는 IP주소를 통해 접속했지만, 이제 도메인 주소를 구입한 후 연결해 줄 것이다. 가비아 라는 사이트에서 도메인을 구입했다. .shop 도메인은 할인이 적용되어 550원에 구매할 수 있다. woodyserver.shop 으로 구매했다. => 구매할때 오타가 나서 woodysever가 되었다...... 어쩔수 없지 뭐 DNS정보의 관리 페이지에 들어가서 DNS 레코드를 추가해 주었다. 타입: A (DNS의 레코드 중 하나로 웹서버의 IPv4의 주소를 매칭할 때 사용한다.) 호스트: www 값: 만든 AWS의 인스턴스 ip 설정 후, www.도메인 이름으로 접속을 해보니 내가 만든 서버가 잘 떴다😄 HTTPS 연결하기 지금까지 구축한 서버의 보안을 위해 Let's encrypt를.. 2022. 4. 21.
AWS 서버 구축하기(2) / MySQL 외부 접속 / phpMyAdmin 설치 MySQL 외부에서 접속하기 이전 글에서 AWS 서버를 구축하고, 외부에서 phpinfo 페이지를 띄우는 것까지 마쳤다. 이번에는 DataGrip을 이용해서 서버에 다운받은 Mysql에 외부에서 접속해 볼 것이다. Datagrip이란? 외부 접속을 하기 위해서 DB 개발과 관리를 용이하게 해주는 GUI 개발 툴이다. Mysql 사용자, DB 생성 $ sudo mysql -u root -p mysql> create user 'Woody'@'%' identified by 'Loveme00!@'; 'Username'@'%' : 해당 사용자에게 외부에서 접근가능한 권한을 부여한다. 외부 접근 권한이 있는 Woody라는 사용자를 생성하고, myTestDB라는 이름으로 새로운 데이터베이스를 생성했다. 권한 부여 m.. 2022. 4. 21.
AWS 서버 구축하기(1) / Nginx, MySQL, php 설치 및 외부 접속 AWS란? 사용자들에게는 노출 되지 않고 개발자들이 자신의 어플리케이션에 사용가능한 서비스들을 제공하는 아마존 닷컴의 온라인 서비스이다. AWS 서버 구축하기 AWS 가입 시 주의할 점은 지역을 대한민국 서울로 하지 않으면 속도가 매우 느려진다는 점이다. 가입 후 내 콘솔로 로그인을 하고, EC2 서비스에 서버를 구축할 것이다. AMI는 사용할 OS를 뜻한다. Ubuntu 20.04 LTS 를 선택하였다. Arm 버전은 사용가능한 프리티어가 없으므로 x86 선택 프리티어 사용가능이라고 되어 있는 것을 선택해야 무료로 사용할 수 있다. 스토리지는 기본 8GB로 되어 있는데, 30GB까지 무료라고 하니, 일단 최대로 해주었다. 옆에 를 꼭 체크해야, 인스턴스 종료시 무료인 30GB가 다시 풀린다. 보안 그룹.. 2022. 4. 21.
로컬서버 구축하기 / MAMP설치 / 포트포워딩 bitnami (MAMP) 설치 Bitnami 란? 웹, 애플리케이션, 개발 스택용 패키지 설치 라이브러리이다. 직접 소스설치 하는 것 보다 훨씬 간편하게 APM을 설치 할 수 있다. bitnami MAMP 설치 후 Manage Servers 탭을 보면 MariaDB와 Apache 서버가 실행 중인 것을 확인 할 수 있다. 맥에서 비트나미를 설치하면 apache 웹서버 기본 포트가 8080으로 설정 되어있다. Configure탭에서 확인 가능 이 상태로 로컬호스트(http://localhost:8080)에 접속하면 bitnami 관련 페이지가 뜬다. 이제 http://localhost:8080/phpinfo.php 페이지에 phpinfo를 띄워 볼 것이다. 편집기를 열어서 phpinfo를 띄우기 위한 파.. 2022. 4. 20.
M1에서 VM 우분투 실행 후 APM 소스설치하기 VM에서 리눅스 계열 OS를 인스턴스 생성하고 APM 소스설치하기 apt-get 과 같은 패키지 매니저 없이 수동으로 APM을 해보도록 하겠다!! 맥북 M1 실리콘 칩 환경에서는 아직 VirtuaBox 또는 VMware 가 호환되지 않기 때문에 다른 플랫폼을 사용해야 한다. 페럴리즈 1개월 무료 체험을 이용하는 방법도 있지만, 더 사용하기 쉬운 UTM 이라는 가상머신 플랫폼을 사용하기로 했다. UTM dmg 파일 다운로드 바로가기 UTM Securely run operating systems on your Mac mac.getutm.app Ubuntu 실행하기 UTM에 리눅스 계열 OS인 우분투를 설치 하기 위해서는 iso파일을 다운받아야 한다. Ubuntu iso파일(ARM) 다운로드 바로가기 Ubun.. 2022. 4. 12.