목록Dev/사전학습 (9)
Leading engineer
왜 Git을 사용하는가? : 뭔가를 만들고, 프로젝트를 진행하면 컴퓨터의 특정 폴더에 작업물들을 넣어놓는다. Git은 이 폴더 안에 시간여행이 가능한 평행우주들을 만드는 것이라고 생각하면 된다. 시간여행이 가능하다 = 내가 수습하기 어려운 실수를 했거나 전이랑 뭐가 바뀌었는지 헷갈릴 때, 언제든 폴더 내 상태를 과거로 돌릴 수 있다. 아예 모든 파일들의 저장된 상태를 돌려놓거나 과거로 돌아가서 필요한 것만 찾아서 현재나 다른 과거로 가져올 수도 있다. Git 사용법 Command line Interface vs Source Tree 두가지가 있다. git init git add -A git status git commit -m "First commit" git log : 캡슐의 정보들과 메시지들이 뜬다...
[ GIT ] $ 커맨드라인 명령어 * 파일들이 다 담기는 프로젝트 폴더 $ cd (폴더 디렉토리) * 이 폴더에서 git을 시작하면 이 폴더의 모든 수정내역들이 저장되는 .git(숨김폴더)란 공간이 생긴다. * 백업 $ git add -A * $ git commit -m "(작업수행내용)" 이 폴더의 내용들이 박제됨. 그 이후로도 프로젝트에 의미있는 변화가 있을때마다 저장해둔다. 압축파일로 저장할 때처럼, 전체가 따로 복사되는게 아니라 각 버전의 변경사항들만 기록되기 때문에, 박제를 여러번 한다고 용량을 몇 배로 차지하지 않는다. 그러다가 프로젝트를 과거 상태로 되돌려야 하는 상황이 오면 * 박제 내역들을 확인한다 $ git logs * 박제됐던 과거의 상태로 복원한다 $ git reset --hard..
'런타임 오류' : 프로그램의 논리적 결함에 의해 발생하는 것을 '논리오류'라고 한다. 프로그래머가 코드로 제어할 수 없는 돌발상황이 발생할 수 있다. 이런 돌발상황에 대처하기 위해 Exception Handling을 마련하였다. 보통 'try' 'catch'란 명령어로 되어 있다, 파이썬의 Try-excipt, 루비의 begin-rescue 처럼 말이나 기능이 조금씩 다른 경우도 있다. 오류가 발생할 수 있는 곳을 예측해서 try로 감싸놓은 부분은 뭐가 잘못되더라도 프로그램이 꺼져버리는 게 아니라 예외를 적당히 제껴놓은 다음 다음 과정으로 넘어갈 수 있도록 한다. try 블럭에서 예외상황, 즉 Exception이 발생하면 catch 문에서 해당 오류에 대한 동작을 실행하고, 오류가 나든 안나든 fina..
Static Web : 움직이지 않는, 언제 접속해도 같은 리소스를 건네주는 웹사이트를 말한다. Static Web에 접속하면 서버는 마치 진열대에 놓인 상품처럼 이미 프로그래머가 작성해 높은 파일들을 그대로 클라이언트의 브라우저에 건네준다. " 들어갈 때마다 매번 같은 화면이 보이는게 정적 웹인 것일까?" => 꼭 그렇진 않다. 1. 현재 날짜와 시간을 표시하는 페이지, 2. 랜덤 함수로 매번 다양한 화면을 보여주는 페이지 3. 직접 서버에 추가 정보를 요청해서 받아온 내용들을 보여주는 페이지 = 모두 JavaScript로 씀. 클라이언트의 브라우저도 JavaScript로 쓰인 레시피를 보고 스스로 만들 수 있는 것 결국 Static Web의 기준은 접속할 때마다 받게 되는 HTML, CSS, Java..
클라우드 : 자사의 거대한 데이터센터에 서로 연결된 수많은 컴퓨터들을 운용하고 있다. 다만 전통적인 온프레미스 방식처럼 사용자에게 컴퓨터를 하나씩 통째로 배당하는 것이 아니라 필요한 만큼 떼서 나눠준다. 물리적 컴퓨터 한 대에 가상의 컴퓨터 여러 대를 띄울 수 있다. = 컴퓨터의 물리적 자원을 필요에 따라 분할해서 쓸 수가 있다. 필요한 컴퓨터 자원이 많지 않거나 수시로 변화하는 회사나 기관, 혹은 개인에게 클라우드는 매력적인 선택지가 된다. => 세일시즌이나 이벤트 기간에 유난히 접속량이 폭주하는 앱의 경우, 클라우드에서 그때그때 필요한 만큼 자원을 늘려주거나 줄여줄 수 있다. 시간과 접속량에 따른 종량제로 운영되기 때문에 필요한 만큼 사용하고 돈을 지불하면 된다. 하드웨어도 클라우드에서 알아서 관리해..
Cookie: 사이트를 방문하고 이용할 때 브라우저에 저장되는 내용이다. => 민감하거나 중요한 정보가 노출될 위험이 있다. . 로그인창의 아이디를 자동완성하거나 공지 메시지를 하루 안보기 하거나 쇼핑몰 사이트에서 로그인 안 한 상태로 물건을 장바구니에 담는 등 사용자의 편의를 위하되 지워지거나 조작되거나 가로채이더라도 큰 일은 없을 수준의 정보들을 브라우저에 저장하는데 사용된다. . Session : 쿠키에 보관하기 곤란한 정보들은 세션에서 관리. => Session을 사용하는 사이트에 접속하면 서버에서는 사용자를 구분하기 위한 기한이 짧은 임시 키 하나를 브라우저에 보내서 쿠키로 저장한다. . Session : 사용자나 다른 누군가에게 노출되어서는 안되는, 서비스제공자가 직접 관리해야 할 정보들은 세..
익스플로러, 크롬, 사파리, 파이어폭스, 오페라 = 웹브라우저 웹사이트가 HTML, CSS, JavaScript로 구성된다 브라우저는 이 세 종류의 파일들을 읽어서 사용자의 모니터에 보여주는 프로그램이다. .docx문서를 워드 프로그램이 보여주는 것을 예로 들자면 .docx문서들을 다루는 프로그램이 워드 말고도 여럿 있고, 이것들이 어느정도 사용자 시장을 분할해서 차지하고 있다면 어떨까? 뭘로 읽는 똑같이 보여진다면 문제가 없다. 그런데 이것들이 .docx 문서를 읽는 방식이 다르다면? = 같은 문서도 뭘로 여느냐에 따라 다르게 보인다면? => 워드 문서를 작성할 떄 이 프로그램들 하나하나에서 어떻게 보여지는지 일일히 확인하면서 작업해야 함. 이 문제를 해결하기 위해 .docx파일에 대한 국제적인 표준이..
오늘날의 HTML, CSS, JavaScript는 웹사이트, 즉 브라우저에서 동작하는 소프트웨어에만 국한되지 않는다. React Native나 Native Script처럼 모바일 앱을 만드는 기술들이 이미 널리 사용되고 있고 심지어 Electron.js같은 걸로 웹사이트가 아닌 컴퓨터 프로그램까지 HTML, CSS, JavaScript로 만들 수 있다. . HTML은 'Hypertext Markup Language' 인 마크업 언어인데, 화면에 이것들이 이런 구조로 놓여 있어라 하고 갖다놓는 수단이다. CSS는 'Cascading Style Sheets' HTML이 올려놓은 이것들은 '이렇게 보여라!'하고 꾸며주는 [문서]이다. JavaScript만이 프로그래밍 언어에 속한다. 원래는 브라우저에서 웹사이..
"서버에 문제가 있나?" , "서버가 터진 거 아냐?" : 웹사이트에 안들어가지거나 온라인 게임이 잘 안돌거나 할 때 하는 말. if 모바일에서 네이버, 유튜브로 들어가면 온갖 영상들, 글들, 사진들을 볼 수 있다. 여기에 들어있는 정보들은 내 컴퓨터에 들어있는 것이 아닌 다른 어딘가 '서버'라고 부르는 어떤 '컴퓨터'에 저장되어 있는 것이다. 서버 = 컴퓨터 . 한 컴퓨터가 네트워크로 연결된 다른 하나, 또는 그 이상의 컴퓨터들에게 뭔가를 해주는 것. 1. 저장된 글과 사진들을 보여줌 2. 반대로 이것들을 업로드받아서 보관해 줌 3. 한 컴퓨터가 톡을 보내면 다른 컴퓨터에 알림을 보내줌 4. 위치와 목적지를 받아서 가는길과 소요시간을 계산해줌 5. 여럿이 참여할 수 있는 게임을 열어줌 그 해주는 ser..