[UMC 8주차] API 개발 실전 1
2022. 9. 29. 00:48
동아리/UMC 2기
실습 내용 유저 피드 조회 API model GetUserFeedRes _isMyFeed : 자신의 피드인지 타인의 피드인지 구분 getUserInfo : 유저의 정보 getUserPosts : 유저의 게시물 리스트 GetUserInfoRes nickname : 유저 닉네임 name : 유저 이름 profileImgUrl : 유저 프로필 url website : 웹사이트 url introduction : 소개글 follwerCount : 팔로워 수 followingCount : 팔로잉 수 postCount : 게시물 수 GetUserPostsRes postIdx : 게시물 idx postImgUrl : 게시물 사진 url UserController getUserFeed GET 메소드를 사용 1. user..
[42 Seoul] get_next_line
2022. 9. 22. 14:29
42 Seoul
설명에 들어가기 전 후기 프로젝트 이해부터 굉장히 오래 걸린 과제였다. BUFFER_SIZE만큼 글자를 읽는데, 막상 반환하라는 것은 \n이 나올때까지의 문자열을 반환하라니.... 프로젝트 이해는 오래 걸렸지만 방식을 이해하고 나니 구현은 오래 걸리지 않았다. 다양하게 fd를 다루는 bonus를 하고 싶어 연결리스트로 구현하려 했으나, 연결리스트로 구현하는 것이 미숙하여 며칠을 고민한 끝에 포기하고 배열로 구현한 점이 가장 아쉬움이 남는다. 새롭게 gcc -D 플래그를 알 수 있었고, free를 하며 댕글링 포인터, 그리고 메모리 누수 체크 방법 등을 알 수 있던 과제였다. 앞으로 메모리 누수를 신경쓰며 과제를 해나갈텐데, leak를 본격적으로 해결하는 첫 단계 였다고 생각한다. 평가하는 도중 나의 코드..
[42 Seoul] Born2beroot - Bonus
2022. 9. 6. 15:17
42 Seoul
lighttpd, MariaDB, PHP를 사용해 WordPress 구축하기 Lighttpd Lighttpd이란? youtube, wikipedia 등이 사용하는 오픈소스 경량 웹서버 Lighttpd 설치 및 적용 #lighttpd 설치 sudo apt-get install lighttpd #서버 중지, 시작, 부팅시 활성화 명령어 sudo systemctl stop lighttpd.service sudo systemctl start lighttpd.service sudo systemctl enable lighttpd.service php: 대표적인 서버 측에서 실행되는 서버 사이드 스크립트 언어 #php 설치 sudo apt-get install php7.4-fpm #php.ini 파일 수정 vi /e..
[42 Seoul] Born2beroot - sudo, ufw, ssh, cron
2022. 9. 5. 16:56
42 Seoul
SUDO sudo란? Super User Do 혹은 Substitute User Do의 약자로 유닉스 계열의 운영체제에서 루트가 아닌 다른 유저에게 제한적으로 관리자 권한을 부여 /etc/sudoers 설정 파일에 명시되어 있는 유저만 사용 가능 sudo의 장점 시스템 침입자가 sudo를 사용하게 되면 sudoers에 자신이 노출되기에 침입을 확인할 수 있음 root 계정에 장시간 머무를 일이 없어져, 위험한 명령을 실행할 가능성이 낮아짐 root와 달리 log가 남아서 추적이 쉬움 root의 password를 타인과 공유 하지 않아도 됨 sudo 설정 #root 계정 전환 su - #sudo 패키지 설치 apt-get install sudo #sudo 패키지 확인 dpkg -l | grep 'sudo'..
[42 Seoul] Born2beroot - User, Hostname, Partitions
2022. 9. 5. 15:32
42 Seoul
설치 과정 Hard disk file type VDI (VirtualBox Disk Image) : Virtualbox에서만 사용 가능한 포맷 방식 VHB(Virtual Hard Disk) : Virtualbox, Hyper-V, Xen에서 사용 가능한 포맷 방식 VMDK(Virtual Machine Disk) : Virtualbox, VMware Player에서 사용 가능한 포맷 방식 => VDI 선택 Storage on physical hard disk Dynamically allocated : 가상머신 하드 디스크에 데이터가 기록될 때 크기가 자동으로 증가 장점 : 가변적으로 크기가 늘어나므로 공간 낭비를 방지 단점 : 속도가 느림 Fixed size : 가상머신 하드 디스크의 크기를 고정 장점 :..
[UMC 7주차] 프레임워크 사용하기
2022. 9. 1. 23:33
동아리/UMC 2기
실습 내용 개발 환경 구축하기 WinSCP에서 Putty실행하여 개발 환경 구축 진행 java 설치 sudo su apt install default-jdk 깃 클론 cd /var/www git clone [깃허브 주소] default 파일 수정 vim /etc/nginx/sites-available/default #이 부분을 변경 root /var/www/udemy_server_practive_springboot; #재시작 service nginx restart default 파일에서 root를 깃 클론한 폴더를 가리키도록 변경 application.yml 수정 vim /var/www/udemy_server_practice_springboot/src/main/resources/application.ym..
[42 Seoul] Born2beroot - 프로젝트 개요
2022. 9. 1. 16:17
42 Seoul
설명에 들어가기 전 후기 과제를 시작하기 몇 달 전 UMC 동아리에서 VirtualBox를 사용하여 APM(Apache + PHP + MySQL)을 설치 해 본적이있어서 Virtual Box를 다루는 데는 어렵지 않았다. 다만 처음 들어보는 LVM과 ufw, 그리고 오류가 많이 났던 포트포워딩 하는 과정은 좀 헤맸다. 게다가 비밀번호 정책 설정 중 오타를 발견하여 제대로 비밀번호 정책이 설정되지 않은 점(ucredit인데 uncredit으로 오타낸다던지...), 기존의 사용자에는 비밀번호 정책(만료 기간...등)이 적용이 되지 않은 점 등 오류가 있던 부분이 있었지만 수많은 구글링으로 겨우 설정을 마무리 할 수 있었다. 설치는 간단하였지만, 설정 부분에서 애를 먹었고, 더 힘들게 만든 점은 개념 숙지였다..
[네트워크 1강] 컴퓨터 네트워크 기본 1
2022. 8. 31. 20:56
study/네트워크 스터디
A closer look at network structure network edge 가장자리에 있는 부분 랩탑, 데스크탑, 서버 network core 중간에 있는 부분 라우터 네트워크 of 네트워크 access networks, physical media 위의 구성요소들을 연결하는 링크 The network edge end system (hosts) 인터넷의 edge에 위치하고 있어, 인터넷에 연결된 컴퓨터나 다른 장비들을 end system이라고 함 end system들은 애플리케이션 프로그램을 host하기 때문에 host라고도 불림 ex) web, email client/server model client : 자기가 원할 때 링크에 연결해서 서버로부터 원하는 정보를 가져오는 요소 server : ..
[UMC 6주차] Restful API와 프레임워크
2022. 8. 27. 23:11
동아리/UMC 2기
강의 내용 HTTP 통신 Hypter Text Transfer Protocol의 약자로, 인터넷에서 데이터를 주고 받는 프로토콜 HTML, 평문, JSON 등 다양한 포맷으로 데이터 전달 가능 클라이언트가 서버로 요청 할 때, 보내는 데이터를 HTTP 패킷이라 함 GET 메소드 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, Query String을 통해 전송 Query String URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터 POST 메소드 HTTP 메세지의 Body에 데이터를 담아서 전송 API Application Programming Interface의 약자로, 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인..
[UMC 5주차] 데이터베이스 실전
2022. 8. 27. 22:14
동아리/UMC 2기
실습 내용 Aquery Tool을 이용한 인스타그램 erd 설계 유저 피드 조회 쿼리 작성 실습 SELECT name, nickName, profileImgUrl, introduce, website FROM User WHERE userIdx=2; SELECT COUNT(postIdx) FROM Post WHERE status='ACTIVE' and userIdx=2; => 하나로 합치기 SELECT name, nickName, profileImgUrl, introduce, website, postCount FROM User left join(SELECT userIdx, COUNT(postIdx) as postCount FROM Post WHERE status='ACTIVE' group by userIdx..