IT이야기/태그연습장2018. 10. 16. 21:21


텍스트파일에 영어단어와 뜻을 한줄씩 적으면 랜덤으로 1분씩 보여주게 됩니다.

아주 간단하게 자바스크립트와 HTML로 구현가능하네요.












-Source

<!DOCTYPE html>
<html>
<head>
<title> New Document </title>
<meta charset="utf-8"/>
<script type="text/javascript">
var cnt = 0;
var test;
var objRun;
function run() {
var arr = test.split("\n");
var view=document.getElementById("content");
cnt = Math.floor(Math.random() * arr.length) + 1;
if(arr.length < cnt) {
cnt = 0;
}
view.textContent = arr[cnt];
}
function fileread(){
var file = document.getElementById("file").files[0];
var reader = new FileReader();
reader.readAsText(file, "utf-8");
reader.onload=function(){
test = reader.result;
run();
objRun= setInterval("run()", 60000);
//view.textContent = reader.result;
};
reader.onerror = function(event){
switch(event.target.error.code){
case error.NOT_FOUND_ERR:
alert("NOT_FOUND_ERR");break;
case error.SECURITY_ERR:
alert("SECURITY_ERR");break;
case error.ABORT_ERR:
alert("ABORT_ERR"); break;
case error.NOT_READABLE_ERR:
alert("NOT_READABLE_ERR"); break;
case error.ENCODING_ERR:
alert("ENCODING_ERR"); break;
}
};
}
</script>
</head>
<body>
<input id="file" type="file">
<input type="button" onclick="fileread()" value="read">
<br/>
<table id="table"></table>
<textarea id="content" readonly style="width:600px; height:80px;"></textarea>
</body>
</html>


'IT이야기 > 태그연습장' 카테고리의 다른 글

블로그에 소스코드 올릴때 태그  (0) 2018.10.04
self emdr  (0) 2018.10.04
Posted by Joseph514
IT이야기/입코딩2017. 7. 1. 23:26

Front end dev skills

https://www.frontendhandbook.com/practice/skills.html


프론트 엔드(front-end) 개발자의 기본 스킬입니다.
보통 html, css, javascript 정도 생각하실텐데
프론트 엔드라는 정의가 애매하기도 하고
이런이런 스킬들이 있다고 정리해 두면 좋을거같네요.

* Content Management Systems (aka CMS)
* Node.js
* Cross-Browser Testing
* Cross-Platform Testing
* Unit Testing
* Cross-Device Testing
* Accessibility / WAI-ARIA
* Search Engine Optimization (aka SEO)
* Interaction or User Interface Design
* User Experience
* Usability
* E-commerce Systems
* Portal Systems
* Wireframing
* CSS Layout / Grids
* DOM Manipulation (e.g., jQuery)
* Mobile Web Performance
* Load Testing
* Performance Testing
* Progressive Enhancement / Graceful Degradation
* Version Control (e.g., GIT)
* MVC / MVVM / MV*
* Functional Programming
* Data Formats (e.g., JSON, XML)
* Data APIs (e.g Restful API)
* Web Font Embedding
* Scalable Vector Graphics (aka SVG)
* Regular Expressions
* Content Strategy
* Microdata / Microformats
* Task Runners, Build Tools, Process Automation Tools
* Responsive Web Design
* Object-Oriented Programming
* Application Architecture
* Modules
* Dependency Managers
* Package Managers
* JavaScript Animation
* CSS Animation
* Charts / Graphs
* UI Widgets
* Code Quality Testing
* Code Coverage Testing
* Code Complexity Analysis
* Integration Testing
* Command Line / CLI
* Templating Strategies
* Templating Engines
* Single Page Applications
* XHR Requests (aka AJAX)
* Web/Browser Security
* HTML Semantics
* Browser Developer Tools

Posted by Joseph514
IT이야기/입코딩2017. 6. 29. 10:58

2016년에 자바스크립트를 배우는 기분-번역

작년에 인터넷에 떠돌던 2016년에 자바스크립트를 배우는 기분이라는 글이 있었는데요.

한글로 번역해놓으신 분께 있어서 일부 발췌해 왔습니다.


How it feels to learn JavaScript in 2016

원문보기




Cool. I need to create a page that displays the latest activity from the users, so I just need to get the data from the REST endpoint and display it in some sort of filterable table, and update it if anything changes in the server. I was thinking maybe using jQuery to fetch and display the data?

쩐다. 난 지금 사용자들이 남긴 최근 행동들을 보여주는 페이지를 짜려고 하는데, 그러면 일단 REST를 이용해서 데이터를 불러와 필터가 되는 테이블에 표시해 준 다음, 서버에서 갱신되는 게 있다면 테이블을 업데이트 해주려고 해. 데이터 불러오고 표시하는 데 jQuery 쓰면 되지?

-Oh my god no, no one uses jQuery anymore. You should try learning React, it’s 2016.

- 야잌ㅋㅋㅋㅋ 누가 jQuery 쓴다고 그러냐. 2016년 잇 아이템인 React를 써야지.

Oh, OK. What’s React?

헐, 그게 뭔데?

-It’s a super cool library made by some guys at Facebook, it really brings control and performance to your application, by allowing you to handle any view changes very easily.

- 페이스북 존잘러들이 만든 슈퍼쿨 짱짱 라이브러리지. 네가 웹앱 만들 때 뷰를 마음대로 다루면서 기능과 성능도 모두 챙길 수 있지.


중략...


What’s wrong with HTML?

HTML 가지고 뭐가 부족하길래 그런 걸 씀?

-It’s 2016. No one codes HTML directly anymore.

- 야 2016년에 직접 HTML을 다루는 사람이 어딨어.

Right. Anyway, if I add these two libraries then I can use React?

알았어. 그럼 그 둘만 더하면 React 쓸 수 있는거지?

-Not quite. You need to add Babel, and then you are able to use React.

- 글쎄, Babel을 추가해야 React를 쓸 수 있을껄.


중략...


I have no idea what you just said, and all these names are confusing. Look, I’m just loading a bunch of data from a server, I used to be able to just include jQuery from a CDN and just get the data with AJAX calls, why can’t I just do that?

... 뭐라고 하는지 하나도 모르겠는데. 이름도 헷갈리고. 난 그냥 서버에서 데이터 불러서 보여주고 싶은 건데. CDN에서 jQuery 받아서 걍 AJAX 콜 하려는거고. 이렇게 하면 왜 안 되는데?

-It’s 2016 man, no one uses jQuery anymore, it ends up in a bunch of spaghetti code. Everyone knows that.

- 2016년이잖아. 아무도 jQuery 같은 건 안 쓴다고. 그런거 썼다간 쓰레기 같은 스파게티 코드만 남아. 그것도 몰라?

Right. So my alternative is to load three libraries to fetch data and display a HTML table.

후... 그럼 대안으로 세 가지 라이브러리를 로드하고, 데이터를 받아와서 화면에 HTML 테이블로 뿌리면 되나?

-Well, you include those three libraries but bundle them up with a module manager to load only one file.

- 음... 뭐 예전처럼 각각 포함해도 되긴 하는데 가능하면 모듈 매니저를 통해 번들로 묶어서 파일 하나만 로드하는게 낫지.


중략...


-I would transpile it from Typescript using a Webpack + SystemJS + Babel combo.

- 난 보통 Typescript를 Webpack + SystemJS + Babel 콤보로 써서 트랜스파일하지.

Typescript? I thought we were coding in JavaScript!

뭐? Typescript? 우리 자바스크립트 얘기하고 있지 않았나???!

-Typescript IS JavaScript, or better put, a superset of JavaScript, more specifically JavaScript on version ES6. You know, that sixth version we talked about before?

- Typescript는 자바스크립트이기도 하고 자바스크립트를 포함하기도 하지. 음, 특별히 자바스크립트 ES6의 수퍼셋이라 할 수 있겠다. 아까 말한 여섯 째 기억나지?


중략...


You know what. I think we are done here. Actually, I think I’m done. I’m done with the web, I’m done with JavaScript altogether.

있잖아. 우리 여기까지만 하자. 나 질렸어. 웹에도 질렸고 자바스크립트 같은 것들 따위에도 죄다 질렸어.

-That’s fine, in a few years we all are going to be coding in Elm or WebAssembly.

- 괜찮아. 어차피 몇 년 내에 Elm이나 WebAssembly로 갈아탈 거거든.

I’m just going to move back to the backend. I just can’t handle these many changes and versions and editions and compilers and transpilers. The JavaScript community is insane if it thinks anyone can keep up with this.

난 백엔드나 하련다. 너무 많이 바뀌어서 감당이 안 돼. 이런 걸 다 따라올 수 있다고 생각했다면 자바스크립트 커뮤니티는 미친 거야.

-I hear you. You should try the Python community then.

- 그래. 그럼 너 파이썬 커뮤니티에 가봐.

Why?

왜?

-Ever heard of Python 3?

- 파이썬 3 소식 못 들었어?



벌써 저 글이 나온지도 1년이 지났군요.

아직까진 한국에서는 자바 스프링프레임워크에 jquery, javascript이용해서 웹 만드는게 사실상의 표준에 가깝기에

2016년에도 사용안한다는 제이쿼리는 저는 아주 요긴하게 써먹으면서 먹고 살고 있긴합니다.

파이썬, React, 에귤러 js... 이런건 듣기만 했었고, 어떤 것들인지는 생각도 못해봤는데 금세 새로운 기술들이 나오네요. 저런 기술이란것도 있구나 싶고 몰랐던 단어들을 보게 되네요.

Posted by Joseph514
IT이야기/입코딩2017. 5. 16. 17:25


-웹표준에 대해 알아보겠습니다.


웹개발을 하다보면, 웹표준이니 웹접근성이니 하는 말들을 인터넷에서 많이 사용하는데요. 

우선, 웹 표준이란 무엇인지 이 포스팅에서 한번 알아보겠습니다.

월드 와이드 웹의 측면을 서술하고 정의하는 공식 표준이나 다른 기술 규격을 가리키는 일반적인 용어입니다.

보통 인터넷을 이용할 때 같은 웹페이지라면 어느 브라우저를 사용하는지 여부에 상관없이 그 웹페이지가 똑같이 보이고 정상적으로 작동해야 함을 의미합니다. 

Acid 테스트를 통해서 웹 브라우저가 웹 표준을 준수하는지 테스트할 수 있습니다. 

W3C 웹표준 설명



이전에 엑티브x(Atcivex)항목에서 포스팅 하였던 데로 한국에서는 정부나 공공기관부터가 웹 표준을 무시하고 있습니다.


웹 사이트를 작성하는 데 중요도가 높아지고 있으며 웹 디자인, 개발과 관계가 있습니다. 

수많은 상호 의존성이 있는 표준들과 규격들 가운데 일부는 단지 월드 와이드 웹으로만 끝나는 것이 아니라, 인터넷의 관리 측면이기도 하며 이러한 표준들은 직간접적으로 웹 사이트, 웹 서비스 개발과 관리에 영향을 주고 있습니다. 

웹 표준을 완벽하게 지키려면 특정 브라우저에 의존하는 플러그인이나 코드를 완벽하게 제거해야 하는 것이 보통인데, 일반적인 브라우저에 공통적으로 제공되는 플러그인은 이 기준에서 예외가 되는 경우가 많습니다.

이러한 것들 모두 "웹 표준"이라고 부르지만 웹 표준으로 이동하는 것을 찬성하는 사람들은 사용성과 접근성에 직접 영향을 미치는 더 높은 수준의 표준에 초점을 두는 경향이 있습니다. 


더 넓은 뜻의 웹 표준은 아래를 이릅니다.


-W3C (World Wide Web Consortium) - 대표적으로 HTML과 CSS의 표준을 정한다.

-국제 인터넷 표준화 기구 (IETF)가 출판한 인터넷 표준 (STD) 문서

-국제 인터넷 표준화 기구 (IETF)가 출판한 RFC (Request for Comments) 문서

-국제표준화기구(ISO)가 출판한 표준들

-Ecma 인터내셔널 (이전 이름은 ECMA)이 출판한 표준들 - JavaScript 표준이 여기서 정해진다.

-유니코드 컨소시엄이 출판한 유니코드 표준과 다양한 유니코드 기술 보고서 (UTR)

-인터넷 할당 번호 기관 (IANA)이 운영하는 이름과 번호 레지스트리



-웹 표준이 중요한 이유는 무엇일까요?

산업표준이 왜 존재하는지, 도량형이 왜 존재하는지 생각해 보면 이유가 명확해집니다. 

산업현장에서 부품들의 표준화가 돼 있지 않으면 업체마다 서로 호환이 되지 않고, 같은 업체에서 생산하는 부품도 품질보장이 되질 않을 것입니다. 

웹 환경은 본질적으로 '통신'이기 때문에 더욱 더 표준화가 중요해집니다. 

비표준 '부품'이야 자기네 제품에만 독점적으로 사용할 거라면 크게 상관없지만 웹은 누가 어떤 장치를 어떤 방식으로 사용할지를 제공자가 통제할 수 없기 때문입니다.


2016년 기준으로 인터넷 사용 인구는 30억명을 훌쩍 넘어 갔습니다. 

사실상 전인류의 절반이 인터넷을 사용하고 있고 인터넷 트래픽의 거의 전부를 차지하는 게 웹 트래픽입니다. 

사용하는 사람이 많아지면 표준화는 반드시 해결해야 할 과제가 됩니다. 그것이 일개 개인의 프로젝트에서 시작되었든(월드 와이드 웹), 국제 연합 수준의 극대규모 프로젝트(미터법)였던 말입니다.


웹 표준이 없던 90년대 말 ~ 2000년대 초반에는 웹 사이트 개발자는 사실상 두 개의 사이트를 만들어야 했습니다. 

인터넷 익스플로러용과 넷스케이프용의 두 개로 말이죠. 

실질적으로는 각종 핵과 브라우저 판별 코드를 삽입해야 해서 3배의 노동이 들어갔다고 합니다. 

표준이 없으면 이렇게 더 많은 노동력과 시간이 듭니다. 사회 전체적인 비용이 증가하는 것입니다. 

시간과 예산이 빠듯한 상황에서 웹 개발자는 결국 하나만을 선택하고 나머지를 버릴 수밖에 없어지며 이는 정보 제공에 차별을 발생시킵니다.


인터넷에 정보는 차별없이 제공되어야 합니다. 


물론 이상과 현실은 다릅니다. 

드넓은 PC모니터 화면과 좁디좁은 스마트워치 화면에서 동일한 정보를 제공하는 건 말도 안 되는 소리이고 동영상 스트리밍 사이트가 맹인을 고려해야 한다는 말도 어불성설입니다. 

하지만 이상을 추구해야 하는 것은 맞습니다. 


즉 "이 사이트는 인터넷 익스플로러 6, 1024x768해상도에서만 이용하실 수 있습니다." 같은 말들은 횡포일 뿐입니다. 

본인이 갑이 아닌데도 불구하고 이런 횡포를 부린다면, 그건 장사하기 싫단 소리밖엔 안 됩니다. 


제가 처음 웹이랍시고 홈페이지를 만들어본게 2000년대 초반입니다.

지금와서 보면 포토샵이랑 나모웹에디터로 찍찍 그려서 제로보드 적용시켜 뚝딱 만들고 했었던게 기억나네요. 

그 당시에는 저처럼 웹표준이란 개념도 없이 자바스크립트로 도배하거나, 플래쉬로 도배된 사이트들도 많았습니다.

위에서 언급한데로, 어떤 해상도에 어떤 웹브라우저에서 최적화 되었습니다 라는 문구가 씌어진 사이트들이 많았습니다. 그리고 제 컴퓨터에서는 아주 잘 나오는데, 이게 학교 컴퓨터나 다른 사람들 피씨에서는 어긋나게 나오는 경우를 왕왕 보았습니다. 익스플로러에서만 나온다는 건, 윈도우 운영체제를 깔아야 한다는 전제로 하는데. 한국에서야 윈도우에 익스플로러 사용자들이 엄청나게 많고 예전엔 더 많았지만, 현재는 크롬 파이어폭스 사파리도 많은 점유율을 차지 하고 있습니다.


나무위키에 등재된 2000년도 초반의 웹표준을 무시한 홈페이지들의 특징을 말씀드려보겠습니다.


-대문이 단순히 '들어가기' 형태로 된 홈페이지들이 많았습니다. 

사이트에 관한 내용을 간단히 보여주는 오늘날의 대문과는 차이가 있었습니다. 

리뉴얼 전 NTX(구 엔젤하이로)나 사유화 사태 전 리그베다 위키의 대문도 개인 홈페이지로 출발하던 시절의 전통이 그대로 유지됐는지 이 방식을 쓰고 있었다고 합니다.

-프레임 구조를 채용한 홈페이지들이 많았습니다. 

지금은 CSS나 jQuery 등의 보급과 W3C의 프레임 구조 채용 지양 권고로 인해 프레임 구조를 채용하지 않는 추세이지만 그 당시에는 프레임 구조의 장점이 많았기 때문에 높은 확률로 프레임을 쓴 것입니다.

header, menu, main, footer 이런식으로 프레임을 나눠서 사용했던 기억이 나네요.

-배경음악을 깔아놓은 홈페이지들을 많이 볼 수 있었습니다. 

바로 앞의 '프레임 구조'의 특징을 활용해서 끊김없는 재생을 구현하면 금상첨화였습니다. 

당시 회선 환경상 MP3를 넣으면 용량의 압박이 심했던지라 MIDI가 대세였습니다. 

인터버드라는 사이트에서 대규모로 MIDI 음악 자료실을 제공해서 인기가 있었지만, 안타깝게도 2001년 가을을 즈음하여 저작권 문제로 문을 닫았습니다. 

나중에 WMA 같은 압축 스트리밍 파일이 보급돼 배경음악으로 쓰이기도 했습니다.

-알록달록한 글꼴 색상과 효과, 화려한 클립아트와 애니메이션 GIF 등이 많이 쓰였습니다. 

이러한 풍조는 웹표준 보급 이후 다소 사그라들었다고 합니다.

-표를 그릴 때 쓰는 <table> 태그로 디자인을 하는 홈페이지들이 있었습니다. 

아직 CSS가 보급되기 전인지라 지금은 어지간하면 CSS로 넣는 디자인적인 요소까지 당시에는 죄다 HTML 문서 안에 때려박을 수밖에 없었고 그래서 <table> 태그가 그나마 레이아웃 잡는데 안성맞춤이었던 태그였습니다. 

웹표준의 개념이 알려지고 HTML5와 CSS3가 널리 보급된 현재는 레이아웃용 태그와 <div> 태그를 쓰고 <table> 태그를 레이아웃용으로 쓰는 경우는 찾아보기 어려워졌습니다.

-초창기에는 자바 애플릿을 넣는 홈페이지들을 꽤 볼 수 있었습니다. 

하지만 자바 가상 머신이 필요하다는 문제점이 있었고 매크로미디어 플래시가 보급된 이후 점차적으로 자바 애플릿 중 일부가 플래시로 대체되었습니다. 

물론 플래시를 보기 위해서도 매크로미디어 플래시 플레이어 플러그인을 깔아야 했다는 점은 똑같습니다. 

현재는 자바 애플릿이 이미 사양길로 들어선 상태고 플래시도 사정은 비슷합니다. 다만, 둘 다 HTML5로 대체할 수 있다고 합니다.

-게시판이나 방명록은 높은 확률로 홈페이지 서비스에서 함께 제공하는 게시판이 달려 있었습니다.


지금와서 아카이브로 박제된 90~2000년대 초반 홈페이지들을 보면 이질감이 느껴집니다.

그만큼 사람들은 웹 표준에 익숙해 졌기 때문 일수도 있겠죠.


민원24같은 전자정부 사이트는 갑의 요건을 일부 충족하기 때문에 아직도 영업이 가능한 면이 있지만 이것도 시대를 역행한다고 볼수 있죠. 내년까진 다 갈아엎는다고 들었습니다.


지금까지 웹표준에 대한 정의를 알아보았습니다.



출처 : 나무위키, 본인 생각

Posted by Joseph514