인터넷 학술 문헌 검색
주의 : 아래의 내용은 실제와 다를 수 있다. 왜냐하면 현재 계속 개발중이기 때문이다.
구글 스칼라(Google Scholar)
구글 스칼라는 검색 엔진으로 유명한 구글(Google)의 학술 문헌 전용 검색서비스이다.
최근에 연구 동향을 한눈에 볼 수 있는 기능을 논문 검색에 추가했다. 구글이 추가한 새로운 기능을 통해 최근에 발표된 논문들 중 많이 인용되고 있는 논문이나 논문 작성일 등을 기준으로 검색할 수 있다.
최근 미국에서 자료를 수집할 때 가장 많이 사용하는 인터넷 검색 엔진에 대한 설문조사에서 젊은 과학자들은 구글(Google)과 구글 스칼라(Google Scholar)를 가장 많이 이용하는 것으로 조사되었다.
구글 스칼라의 URL은 “http://scholar.google.com“이며 아래 검색창에서 바로 검색할 수 있다.
* 도움말
- Title : 완전한 논문(기사)의 제목, 논문(기사)의 초록과 연결된 제목, 또는 웹사이트에서 얻을 수 있는 제목
- Cited By : 논문(기사)를 인용한 다른 논문들
- Library Links (online) : 자신이 속한 도서관의 자원을 통한 검색. 이 검색은 캠퍼스 내에서 접속할 때 자동으로 나타남.
- Library Links (offline) : Locates libraries which have a physical copy of the work.
- Group of : 학술적으로 관련된 영역내에서 다른 논문(기사)를 검색.
- Web Search : 현재 입력한 검색어를 가지고 구글에서 검색
- BL Direct : 영국 도서관을 통하여 논문(기사)의 전문을 구매.
윈도우즈 라이브 아카데믹(Windows Live Academic)
윈도우즈 라이브 아카데믹은 마이크로소프트(Microsoft)에서 제공하는 학술 문헌 검색 서비스이다.
URL : http://academic.live.com/
윈 도우즈 라이브 아카데믹에서는 기사 제목, 저자 이름, 기사 요약 및 세미나 절차로 학술 논문 및 콘텐츠를 검색할 수 있다.저자, 날짜, 간행물 및 세미나를 기준으로 결과를 정렬하고 미리 보기 창에서 기사의 요약 및 인용 정보를 확인하면 검색 시간을절약할 수 있다.
서비스는 현재 베타 버전으로 제공됩니다.
* 도움말
- Slider bar: This allows you to change the amount of info you see. See more or see less-it’s up to you.
- Preview pane: Hover over a result to see more info about an article before you click through to it.
- Abstract: Click this to display an article’s abstract (if available) in the Preview Pane.
- BibTeX/EndNote: Click this to see an article’s formatted citation (in BibTeX or EndNote format).
- Search result:This is the search result itself, including (when available) links tothe full text of the paper, and to a search of your own library forthat article.
- Sort by: This is a drop-down menu that lets you sort results by author, journal, conference, date, and relevance
이상의 내용은 건축도시연구정보센터의 메일을 토대로 재작성한 것임.
XML 주석활용하기-내가 짠 함수에 대한 설명이 보이게
프로그램 작성시 중요한 것 중의 하나가 주석을 적절하게 다는 것이다.
이제 주석 처리가 VB.NET 2005에 들어오면서 획기적으로 발전하였다. 단순한 주석에서 머무르지 않고 이제는 XML 주석을 통해 각 코드에 구조화된 주석을 쉽게 첨가할 수 있게 되었다. 주석을 작성할 때 각 요소들의 상단에 작은따옴표 3개(”’)를 입력하면(원래 비베의 주석은 작은따옴표 한 개면 됨) [그림1]과 같이 자동으로 XML 주석이 생성되는 것을 확인 할 수 있다.
[그림 1] 비베20005에서 XML 자동 주석 달기
해당 요소에 대한 XML 주석 작성 후 다른 곳에서 그 요소를 참조하게 되면 작성된 XML 주석의 내용이 인텔리센스로 표현되어 코딩시 혼동을 방지할 수 있다.
[그림2], [그림3]은 작성된 XML 주석이 참조시 사용되는 예이다.
[그림 2] XML 주석의 활용 – 첫째 인자에 대한 설명이 나옴
[그림 3] XML 주석의 활용 – 둘째 인자에 대한 설명이 나옴
[For your information]
Visual Basic에서는 프로젝트를 빌드할 때 자동으로 XML 설명서 파일을 생성합니다. 이 파일은 응용 프로그램 출력 디렉터리에 AssemblyName.xml로 나타납니다. 이 파일은 XML 파일이므로 필요할 경우 다른 출력 형식으로 쉽게 변환할 수 있습니다. XML 주석을 사용하면 쉽고 편리하게 코드 설명서를 생성할 수 있습니다. 즉, 코드를 작성하는 동안에는 IntelliSense로, 응용 프로그램을 빌드한 후에는 코드 설명서로 생성할 수 있습니다. (출처 : Visual Basic 2005의 언어 향상)
Protected: 건축물의 설비기준 등에 관한 규칙-20060213
리팩터링(refactoring)
리팩터링(refactoring)
1. 정의
– 기존 코드의 설계를 개선하는 절차
– 동작(operation)을 보존하는 변환
-> 겉으로 보이는 동작을 바꾸지 않고, 이해하거나 수정하기 쉽게 소프트웨어의 내부 구조를 바꾸는 것 (Martin Fowler)
2. 리팩터링을 하는 이유
– 새로운 코드를 더 쉽게 추가할 수 있도록 하기 위해
– 기존 코드의 설계를 개선하기 위해
– 기존 코드를 더 잘 이해하기 위해
– 덜 짜증나는 코드로 만들기 위해
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
컴퓨터가 이해하는 코드는 어느 바보나 짤 수 있다. 훌륭한 프로그래머는 사람이 이해할 수 있는 코드를 짠다.” – Martin Fowler
<참고>
패턴(pattern) : 반복해 나나타는 설계 문제에 대한 표준 해법
설계 초기 단계부터 패턴을 적용하는 것보다 기존 설계를 개선하는 데 패턴을 사용하는 것이 더 낫다.
경계조건
열전도 해석에서 중요한 것 중의 하나가 경계 조건이다. 경계조건을 일반적으로 다음과 같이 분류할 수 있다.
1. 경계면에 일정한 온도(constant temperature)가 주어진 경우(->Dirichlet Condition)
– 대류열전달이 잘 될 때(high condition) 경계면의 온도를 유체의 온도로 가정할 수 있다.
– 상변화(phase change)가 일어날 때 온도가 일정하다.
예) melting solid, boiling liquid
2.경계면에 일정한 열유속(constant heat flux)이 주어진 경우(->Neumann Condition)
– 표면을 전기 가열할 때
– 열유속이 0이면, 단열 조건이 됨
3.경계면에 열유속이 열전달계수와 주위의 유체 온도로 주어진 경우
– 대류열전달이 이루어질 때
– 복사열전달에 대해서도 4제곱을 인수분해하여 일차식으로 표현하여 마치 대류열전달과 같이 선형식으로 취급하여 계산할 수도 있다.
공기정화기가 오히려 오염원 된다
실내 먼지와 꽃가루, 미립자 등을 제거하기 위한 이온 공기정화기가 오히려 인체에 유해한 스모그를 발생시킨다는 연구 결과가 나왔다고 미국 과학전문 웹사이트 ‘라이브사이언스닷컴(LiveScience.com)이 10일 보도했다.
어 바인 캘리포니아 대학 화학과 세르게이 니즈코로도프 교수팀이 ‘공기.쓰레기 관리협회(Air & WasteManagement Association)’ 저널에 발표한 연구 결과에 따르면 이온 공기정화기는 공기 중 먼지를 전극봉으로끌어들여 없애는 과정에서 부산물로 오존을 발생시킨다.
작고 밀폐된 공간에서 이 오존은 다시 기존 오존과 결합해 인체에 해로울 수 있는 응축물을 형성한다.
대기 중 오존은 지구를 자외선으로부터 보호하는 긍정적 역할을 하지만 ‘스모그’로 불리는 실내 오존은 사람의 폐에 해를 주고 숨가쁨과 인후염을 야기하며 천식을 악화할 수 있다.
니 즈코로도프 교수팀이 공기정화기를 설치한 다수의 가정과 사무실, 차량 등을 상대로 시험한 결과 대부분에서 실내 먼지 농도가캘리포니아의 허용 기준치인 90ppb를 넘어섰으며, 일부에서는 2단계 스모그 경보를 발령할 수 있는 350ppb까지 치솟았다.캘리포니아에서 2단계 스모그 경보가 발령된 것은 1988년 이후 단 한 차례도 없다.
캘리포니아 의회는 이에 따라 공기정화기의 오염물질 배출 저감법 제정을 검토 중이며, 연방정부와 주 환경청(EPA)은 공기정화기 사용을 자제할 것을 주민들에 촉구하고 있다.
니즈코로도프 교수는 “실내 공기정화기를 사용하는 사람들은 오히려 건강 허용 기준을 넘는 오존에 노출되기 쉽다”고 문제점을 지적했다. (서울=연합뉴스)
(사)한국그린빌딩협의회 학술이사 위촉
(사)한국그린빌딩협의회 학술이사 위촉
If문과 Select문의 비교
프로그래밍의 가장 기본 중의 하나가 If문에 의한 실행의 분기일 것이다.
단순한 분기에서부터 다중 분기까지 가능하다.
<문제>
성적 점수에 따라 평점(A, B, C, D, F 등으로 표시되는 것. 학점하고 구분)을 반환하는 함수를 작성하라.
1) If문을 이용한 함수 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Public Function GetGrade(ByVal AverageScore As Single) As String If AverageScore >= 95 Then Return "A+" ElseIf AverageScore >= 90 And AverageScore < 95 Then Return "A0" ElseIf AverageScore >= 85 And AverageScore < 90 Then Return "B+" ElseIf AverageScore >= 80 And AverageScore < 85 Then Return "B0" ElseIf AverageScore >= 75 And AverageScore < 80 Then Return "C+" ElseIf AverageScore >= 70 And AverageScore < 75 Then Return "C0" Else Return "F" End If End Function |
조건이 굉장히 복잡하게 보이지만, 계산 논리를 한번에 알아볼 수 있다.
이렇게 다중 분기하는 경우 다음과 같이 Select문을 생각해 볼 수 있다.
2)Select문을 이용한 함수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Public Function GetGrade(ByVal AverageScore As Single) As String Select Case AverageScore Case 95 To 100 Return "A+" Case 90 To 94 Return "A0" Case 85 To 89 Return "B+" Case 80 To 84 Return "B0" Case 75 To 79 Return "C+" Case 70 To 74 Return "C0" Case Else Return "F" End Select End Function |
이 함수는 심각한 문제를 안고 있다. 즉, 85.5와 같은 점수에 대해서는 “F”를 줄 수 있기 때문이다.
Case 간에 비어있는 범위가 생길 수 있다는 점에서 유의해야 한다.
3)다시 If문을 이용한 함수
처음 If문을 간결하게 다시 작성하면 다음과 같이 할 수 있다.
여기서 중요하게 볼 것은 처음 조건문은 그 다음 조건문의 필터 역할을 한다는 것이다.
예를들어 85.5점은 처음 조건문부터해서 두번째 조건문까지 만족하지 않는다. 그러나, 세번째 조건문에서는 통과하여 평점을 받게 된다. 즉, 세번째 조건문에 ’90보다 작다’는 필터가 두번째의 조건문을 통해서 만들어진 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Function GetGrade(ByVal 점수 As Single) As String Dim grade As String = "" If 점수 >= 95 Then grade = "A+" ElseIf 점수 >= 90 Then grade = "A" ElseIf 점수 >= 85 Then grade = "B+" ElseIf 점수 >= 80 Then grade = "B" ElseIf 점수 >= 75 Then grade = "C+" ElseIf 점수 >= 70 Then grade = "C" ElseIf 점수 >= 65 Then grade = "D+" ElseIf 점수 >= 60 Then grade = "D" Else grade = "F" End If Return grade End Function |
주의사항 : 제대로 된 필터 기능을 사용하고자 한다면, 점수가 고득점부터 저득점으로 내려오든, 저득점에서 고득점으로 올라가든, 일정한 순서로 조건문을 배열해야 한다는 점이다.
정령 Select문으로는 해결할 수 없는가?
이것을 Select문으로 바꾸면 다음과 같이 될 것이다.
4) 다시 Select문을 이용한 함수
Is라는 키워드를 사용하면 다음과 같이 작성할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Function GetGrade(ByVal 점수 As Single) As String Dim grade As String = "" Select Case 점수 Case Is >= 95 grade = "A+" Case Is >= 90 grade = "A" Case Is >= 85 grade = "B+" Case Is >= 80 grade = "B" Case Is >= 75 grade = "C+" Case Is >= 70 grade = "C" Case Is >= 65 grade = "D+" Case Is >= 60 grade = "D" Case Else grade = "F" End Select Return grade End Function |
이 방법도 Case 점수가 일정한 순서로 배치되어 가능하다는 점을 유의해야 한다.
Single.Parse()처럼 문자열을 객체로 만드는 방법
Single.Parse()는 문자열을 읽어서 그 값을 Single형 값으로 바꾸어준다.
1 |
Dim myValue As Single = Single.Parse("36.5") |
myValue는 단정도 실수인 36.5가 된다.
이 방법은 파일에서 문자열을 읽어온 후에, 그 값을 전환하는데 있어서 매우 유용하다.
같은 방법으로 문자열을 읽어서 특정 객체를 생성시키려면 다음과 같이 하면 된다.
<작성하고자 하는 클래스>
1 2 3 4 5 |
Public Class Person '클래스명 = Person Private m_Name As String Private m_Age As Short ...<중략>.... End Class |
1) String형 매개변수를 갖는 생성자를 선언한다.
그리고, 생성자 코드 안에 문자열을 해석할 InternalParse를 호출한다.
1 2 3 |
Public Sub New(ByVal myText As String) InternalParse(myText) End Sub |
생성자 내용을 간단하게 하는 것이 좋다.
다른 함수(초기화메소드)를 이용하면, 인스턴스 변수에 대한 초기화를 생성자 이외에서도 할 수 있다.
2) InternalParse() 메소드를 작성한다.
1 2 3 4 5 6 7 8 |
Private Sub InternalParse(ByVal myText As String) '문자열을 분해한다. Dim Words() As String = GetWords(myText) 'GetWords에 대한 함수는 각자가 작성 ^^ '하나의 문자열을 의미있는 단어로 분할! '분해된 문자열을 인스턴스 변수에 대입한다. m_Name = Words(0) '이름 m_Age = Short.Parse(Words(1)) '나이 End Sub |
3) Parse() 메소드를 작성한다.
이 때, 이 클래스의 인스턴스 없이 Parse()메소드를 호출하기 위해서는 Shared를 선언한다.
1 2 3 |
Public Shared Function Parse(ByVal myText As String) As Person Return New Person(myText) End Sub |
4)사용법
1 |
Dim mySon As Person = Person.Parse("김창선, 4") |
이름은 ‘김창선’이고 나이는 ‘4’인 mySon 인스턴스가 생긴다.