해외생활이야기2017. 8. 27. 14:29

[JOBINTERVIEW]자주 묻는 자바 인터뷰 2 FAQ(Frequently Asked Questions)



자바 잡 인터뷰에서 자주 묻는 질문과 답변 두번째 번역입니다.

Top Java Frequently Asked Questions- 2


51. Are true and false keywords? 

true 및 false 값은 키워드입니까?

The values true and false are not keywords. 

true 및 false 값은 키워드가 아닙니다.


52. What is a void return type? 

무효 반환 유형(void return type)이란 무엇입니까?

A void return type indicates that a method does not return a value after its execution. 

void return type은 메서드 실행 후 값을 반환하지 않음을 나타냅니다.


53. What is the difference between the File and RandomAccessFile classes? 

File과 RandomAccessFile 클래스의 차이점은 무엇입니까?

The File class encapsulates the files and directories of the local file system. The RandomAccessFile class provides the methods needed to directly access data contained in any part of a file. 

File 클래스는 로컬 파일 시스템의 파일과 디렉토리를 캡슐화합니다. RandomAccessFile 클래스는 파일의 모든 부분에 포함 된 데이터에 직접 액세스하는 데 필요한 메서드를 제공합니다.


54. Which package is always imported by default? 

기본적(default)로 항상 가져 오는 패키지는 무엇입니까?

The java.lang package is always imported by default in all Java Classes.

java.lang 패키지는 기본적으로 모든 Java 클래스에서 가져옵니다. 


55. What restrictions are placed on method overriding? 

method overriding 재정의에는 어떤 제한이 있습니까?

Overridden methods must have the same name, argument list, and return type. The overriding method may not limit the access of the method it overrides but it can expand it. The overriding method may not throw any exceptions that are not thrown by the overridden method. 

Overridden methods는 name, argument list 및 return type이 동일해야합니다. 오버라이드 (override)하는 메소드는 오버라이드 (override)하는 메소드의 액세스를 제한하지 않고 확장 할 수 있습니다. 오버라이드 (override)되는 메소드는, 오버라이드 (override) 된 메소드에 의해 슬로우되지 않는 예외를 throw하지 않습니다.


56. Which arithmetic operations can result in the throwing of an ArithmeticException? 

어떤 arithmetic operations이 ArithmeticException을 던질 수 있습니까?

Integer / and % can result in the throwing of an ArithmeticException. 

정수 /와 %는 ArithmeticException을 던질 수 있습니다.


57. What is the ResourceBundle class? 

ResourceBundle 클래스 란 무엇입니까?

The ResourceBundle class is used to store locale-specific resources that can be loaded by a program to tailor the program's appearance to the particular locale in which it is being run. 

ResourceBundle 클래스는, 프로그램의 외관을 실행하고있는 특정의 로케일에 맞추기 위해서, 프로그램에 의해로드 할 수있는 로케일 고유의 리소스를 포함하기 위해서 사용됩니다.


58. What is numeric promotion? 

numeric promotion이란 무엇입니까?

Numeric promotion is the conversion of a smaller numeric type to a larger numeric type, so that integer and floating-point operations may take place. In numerical promotion, byte, char, and short values are converted to int values. The int values are also converted to long values, if necessary. The long and float values are converted to double values, as required. 

Numeric promotion은 더 작은 숫자 유형을 더 큰 숫자 유형으로 변환하므로 정수 및 부동 소수점 연산이 발생할 수 있습니다. numerical promotion에서는 byte, char 및 short 값이 int 값으로 변환됩니다. 필요한 경우 int 값도 long 값으로 변환됩니다. long 및 float 값은 필요에 따라 double 값으로 변환됩니다.


59. To what value is a variable of the boolean type automatically initialized? 

boolean type의 변수가 자동으로 초기화되는 값은 무엇입니까?

The default value of the boolean type is false. 

boolean type의 기본값(default)은 false입니다.


60. What is the difference between the prefix and postfix forms of the ++ operator? 

++ 연산자의 접두사(prefix)와 접미사(postfix) 형식의 차이점은 무엇입니까?

The prefix form performs the increment operation and returns the value of the increment operation. The postfix form returns the current value to the expression and then performs the increment operation on that value. 

prefix form은 증가 조작을 수행하고 증가 조작의 값을 리턴합니다. postfix form은 현재 값을 표현식으로 리턴 한 다음 해당 값에 대해 증가 조작을 수행합니다.


61. What is the purpose of a statement block? 

statement block의 목적은 무엇입니까?

A statement block is used to organize a sequence of statements as a single statement group. 

statement block은 명령문 시퀀스를 single statement group으로 구성하는 데 사용됩니다.


62. What is the difference between an if statement and a switch statement? 

if 문과 switch 문의 차이점은 무엇입니까?

The if statement is used to select among two alternatives. It uses a boolean expression to decide which alternative should be executed. The switch statement is used to select among multiple alternatives. It uses an int expression to determine which alternative should be executed. 

A Switch statement with 5 Case blocks can be compared to an if statement with 5 else-if blocks. 

if 문은 두 가지 대안 중에서 선택하는 데 사용됩니다. boolean 표현식을 사용하여 어떤 대안을 실행할지 결정합니다. switch 문은 여러 대안 중에서 선택하는 데 사용됩니다. int 식을 사용하여 어떤 대안을 실행해야하는지 결정합니다.

5 개의 Case 블록이있는 Switch 문은 5 개의 else-if 블록이있는 if 문과 비교할 수 있습니다.


63. What do you mean by object oreiented programming 

객체 지향 프로그래밍이란 무엇을 의미합니까?

In object oreinted programming the emphasis is more on data than on the procedure and the program is divided into objects. Some concepts in OO Programming are: 

* The data fields are hidden and they cant be accessed by external functions. 

* The design approach is bottom up. 

* The Methods operate on data that is tied together in data structure 

객체 지향 프로그래밍에서 강조는 프로 시저보다 데이터에 더 중점을 두며 프로그램은 객체로 나뉩니다. OO 프로그래밍의 몇 가지 개념은 다음과 같습니다.

* 데이터 필드는 숨겨져 있으며 외부 함수를 통해 액세스 할 수 없습니다.

* 디자인 접근법은 상향식입니다.

* 메서드는 데이터 구조에서 함께 묶인 데이터에서 작동합니다.


64. What are 4 pillars of object oreinted programming 

object oreinted 프로그래밍의 4 가지 핵심 요소는 무엇입니까?

1. Abstraction - It means hiding the details and only exposing the essentioal parts 

2. Polymorphism - Polymorphism means having many forms. In java you can see polymorphism when you have multiple methods with the same name 

3. Inheritance - Inheritance means the child class inherits the non private properties of the parent class 

4. Encapsulation - It means data hiding. In java with encapsulate the data by making it private and even we want some other class to work on that data then the setter and getter methods are provided 

1. 추상화 - 세부 사항을 숨기고 본질적인 부분 만 드러내는 것을 의미합니다.

2. 다형성 - 다형성은 여러 형태를 갖는 것을 의미합니다. 자바에서는 동일한 이름을 가진 여러 메소드가있을 때 다형성을 볼 수 있습니다.

3. 상속 - 상속은 자식 클래스가 부모 클래스의 비공개 속성을 상속 받음을 의미합니다.

4. 캡슐화 - 데이터 숨기기를 의미합니다. 자바에서는 데이터를 비공개로 캡슐화하고 심지어 다른 클래스가 해당 데이터에서 작업하기를 원한다면 setter 및 getter 메소드가 제공됩니다.


65. Difference between procedural and object oreinted language 

절차 적 언어와 객체 언어의 차이점

In procedural programming the instructions are executed one after another and the data is exposed to the whole program 

In Object Oriented programming the unit of program is an object which is nothing but combination of data and code and the data is not exposed outside the object 

절차 형 프로그래밍에서 명령어는 차례로 실행되고 데이터는 전체 프로그램에 노출됩니다

객체 지향 프로그래밍에서 프로그램 단위는 데이터와 코드의 조합에 지나지 않으며 객체 외부에 노출되지 않는 객체입니다


66. What is the difference between parameters and arguments 

매개 변수(parameters)와 인수(arguments)의 차이점은 무엇입니까?

While defining method, variables passed in the method are called parameters. While using those methods, values passed to those variables are called arguments. 

메서드를 정의하는 동안이 메서드에서 전달 된 변수를 매개 변수라고합니다. 이러한 메소드를 사용하는 동안 이러한 변수에 전달 된 값을 인수라고합니다.


67. What is reflection in java 

자바에서 reflection이란 무엇입니까?

Reflection allows Java code to discover information about the fields, methods and constructors of loaded classes and to dynamically invoke them. The Java Reflection API covers the Reflection features. 

Reflection은 Java 코드가 로드 된 클래스의 필드, 메소드 및 생성자에 대한 정보를 발견하고 동적으로 호출하도록 허용합니다. Java Reflection API는 Reflection 기능을 다룹니다.


68. What is a cloneable interface and how many methods does it contain 

cloneable 인터페이스 란 무엇이며 얼마나 많은 메소드에 포함되어 있습니까?

The cloneable interface is used to identify objects that can be cloned using the Object.clone() method. It is a Tagged or a Marker Interface and hence it does not have any methods. 

cloneable 인터페이스는 Object.clone () 메서드를 사용하여 복제 할 수있는 객체를 식별하는 데 사용됩니다. 이것은 Tagged 또는 Marker Interface이므로 어떠한 메소드도 가지고 있지 않습니다.


69. What is the difference between Java Bean and Java Class

Java Bean과 Java 클래스의 차이점은 무엇입니까?

Basically a Bean is a java class but it has getter and setter method and it does not have any logic in it

기본적으로 Bean은 Java 클래스이지만 getter 및 setter 메서드가 있으며 논리가 없으므로 데이터 보유에 사용됩니다.

반면에 Java 클래스는 Java Bean의 내용을 가질 수 있으며 내부에 일부 논리를 포함합니다.


70. What are null or Marker interfaces in Java ?

Java에서 null 또는 Marker 인터페이스 란 무엇입니까?

The null interfaces or marker interfaces or Tagged Interfaces, do not have method declarations in them. They are empty interfaces, this is to convey the compiler that they have to be treated differently 

null interfaces 또는 marker interfaces 또는 Tagged Interfaces 메소드 선언이 없습니다. 그들은 빈 인터페이스이며, 이것은 다르게 취급되어야하는 컴파일러를 전달하는 것입니다.


71. Does java Support multiple inheritance ?

Java가 다중 상속을 지원합니까?

Java does not support multiple inheritance directly like C++, because then it is prone to ambiguity, example if a class extends 2 other classes and these 2 parent classes have same method names then there is ambiguity. Hence in Partial Java Multiple inheritance is supported using Interfaces 

Java는 C ++과 같은 다중 상속을 지원하지 않습니다. 왜냐하면 클래스가 다른 2 개의 클래스를 확장하고 이러한 2 개의 부모 클래스가 동일한 메소드 이름을 갖고 모호한 경우 예를 들어 애매하게되기 쉽기 때문입니다. 그러므로 부분 Java에서 인터페이스를 사용하여 다중 상속이 지원됩니다.


72. What are virtual function ?

virtual function이란 무엇입니까?

In OOP when a derived class inherits from a base class, an object of the derived class may be referred to (or cast) as either being the base class type or the derived class type. If there are base class functions overridden by the derived class, a problem then arises when a derived object has been cast as the base class type. When a derived object is referred to as being of the base's type, the desired function call behavior is ambiguous. 

The distinction between virtual and not virtual is provided to solve this issue. If the function in question is designated "virtual" then the derived class's function would be called (if it exists). If it is not virtual, the base class's function would be called. 

파생 클래스가 기본 클래스에서 상속되는 OOP에서 파생 클래스의 개체는 기본 클래스 형식 또는 파생 클래스 형식으로 참조 (또는 형 변환) 될 수 있습니다. 파생 클래스에 의해 재정의 된 기본 클래스 함수가있는 경우 파생 개체가 기본 클래스 유형으로 캐스팅 된 경우 문제가 발생합니다. 파생 된 객체가 기본 유형으로 참조되면 원하는 함수 호출 동작이 모호합니다.

이 문제를 해결하기 위해 가상과 가상의 구별이 제공됩니다. 해당 함수가 "가상"으로 지정된 경우 파생 클래스의 함수가 호출됩니다 (있는 경우). 가상 클래스가 아닌 경우 기본 클래스의 함수가 호출됩니다.


73. Does java support virtual functions ?

Java는 가상 함수를 지원합니까?

No java does not support virtual functions direclty like in C++, but it supports using Abstract class and interfaces 

C ++과 같이 virtual functions direclty를 지원하지 않는 Java는 없지만 Abstract 클래스 및 인터페이스 사용을 지원합니다.


74. What is JVM ?

JVM이란 무엇입니까?

When we install a java package. It contains 2 things 

* The Java Runtime Environment (JRE) 

* The Java Development Kit (JDK) 

The JRE provides runtime support for Java applications. The JDK provides the Java compiler and other development tools. The JDK includes the JRE. 

Both the JRE and the JDK include a Java Virtual Machine (JVM). This is the application that executes a Java program. A Java program requires a JVM to run on a particular platform 

우리가 자바 패키지를 설치할 때. 그것은 2 가지를 포함합니다.

* 자바 런타임 환경 (JRE)

* Java Development Kit (JDK)

JRE는 Java 응용 프로그램에 대한 런타임 지원을 제공합니다. JDK는 Java 컴파일러 및 기타 개발 도구를 제공합니다. JDK에는 JRE가 포함되어 있습니다.

JRE와 JDK는 JVM (Java Virtual Machine)을 포함합니다. 이것은 Java 프로그램을 실행하는 응용 프로그램입니다. Java 프로그램을 사용하려면 특정 플랫폼에서 JVM을 실행해야합니다.


75. What is the difference between Authentication and Authorization ?

인증(Authentication)과 권한 부여(Authorization)의 차이점은 무엇입니까?

Authentication is a process for verifying that an individual is who they say they are. Authorization is an additional level of security, and it means that a particular user (usually authenticated), may have access to a particular resource say record, file, directory or script. 

인증(Authentication)은 개인이 자신이 말하는 사람인지 확인하는 프로세스입니다. 권한 부여(Authorization)은 추가 보안 수준이며 특정 사용자 (대개 인증 된 사용자)가 레코드, 파일, 디렉토리 또는 스크립트와 같은 특정 리소스에 액세스 할 수 있음을 의미합니다.


76. What types of values does boolean variables take ?

boolean 변수는 어떤 유형의 값을 취합니까?

It only takes values true and false. 

그것은 참(true)과 거짓(false) 만 값을 취합니다.


77. Which primitive datatypes are signed ?

어떤 primitive 데이터 타입이 signed 되었는가?

All primitive datatypes are signed except char and Boolean

모든 primitive 데이터 유형은 char 및 Boolean을 제외하고 signed 됩니다.


78. Is char type signed or unsigned ?

char 타입이 signed 또는 unsigned입니까?

char type is integral but unsigned. It range is 0 to 2^7-1

char type은 필수이지만 부호가 없습니다. 범위는 0 ~ 2 ^ 7-1입니다.


79. What forms an integral literal can be ?

integral literal를 형성하는 것은 무엇일 수 있습니까?

decimal, octal and hexadecimal, hence example it can be 28, 034 and 0x1c respectively 

10 진수, 8 진수 및 16 진수이므로 예를 들어 28, 034 및 0x1c가 될 수 있습니다


80. Why is the main method static ?

왜 main method는 static 입니까?

So that it can be invoked without creating an instance of that class 

그 클래스의 인스턴스를 생성하지 않아도 호출 될 수 있습니다.


81. What is the difference between class variable, member variable and automatic(local) variable 

클래스 변수, 멤버 변수 및 자동 (로컬) 변수의 차이점은 무엇입니까?

class variable is a static variable and does not belong to instance of class but rather shared across all the instances of the Class. 

member variable belongs to a particular instance of class and can be called from any method of the class 

automatic or local variable is created on entry to a method and is alive only when the method is executed

class 변수는 정적 변수이며 클래스의 인스턴스에 속하지 않지만 클래스의 모든 인스턴스에서 공유됩니다.

member 변수는 클래스의 특정 인스턴스에 속하며 클래스의 모든 메서드에서 호출 할 수 있습니다.

automatic 또는 local 변수는 메소드 진입시 작성되며 메소드가 실행될 때만 활성화됩니다.


82. When are static and non static variables of the class initialized ?

클래스의 정적 및 비 정적 변수는 언제 초기화됩니까?

The static variables are initialized when the class is loaded

Non static variables are initialized just before the constructor is called 

정적 변수는 클래스가 로드 될 때 초기화됩니다.

static이 아닌 변수는 생성자가 호출되기 바로 전에 초기화됩니다.


83. How is an argument passed in java, is it by copy or by reference? 

자바에서 전달되는 인수는 copy 또는 reference로 어떻게 전달됩니까?

If the variable is primitive datatype then it is passed by copy. 

If the variable is an object then it is passed by reference 

변수가 primitive 데이터 유형이면 사본으로 전달됩니다.

변수가 object이면 참조로 전달됩니다.


84. How does bitwise (~) operator work ?

비트 연산자 (~)는 어떻게 작동합니까?

It converts all the 1 bits in a binary value to 0s and all the 0 bits to 1s, e.g 11110000 gets coverted to 00001111 

이진 값의 모든 1 비트를 0으로 변환하고 0 비트를 모두 1로 변환합니다. 예를 들어, 11110000은 00001111


85. Can shift operators be applied to float types ?

연산자를 부동 소수점 형에 적용 할 수 있습니까?

No, shift operators can be applied only to integer or long types (whole numbers)

아니요, shift 연산자는 정수 또는 긴 유형 (정수)에만 적용 할 수 있습니다.


86. What happens to the bits that fall off after shifting ?

shifting 후 떨어지는 비트는 어떻게됩니까?

They are discarded (ignored)

그것들은 무시됩니다 (무시 됨).


87. What are the rules for overriding ?

무시하는 규칙은 무엇입니까?

The rules for Overriding are: Private method can be overridden by private, protected or public methods Friendly method can be overridden by protected or public methods Protected method can be overridden by protected or public methods Public method can be overridden by public method 

Overriding의 규칙은 다음과 같습니다. Private method는 private, protected 또는 public methods로 재정의 할 수 있습니다. Friendly method는 protected 메서드 또는 public 메서드로 재정의 할 수 있습니다. Protected 메서드는 protected 메서드 나 public 메서드로 overridden 할 수 있습니다. Public 메서드는 public 메서드로 재정의 할 수 있습니다.


88. Explain the final Modifier ?

final Modifier를 설명 하시겠습니까?

Final can be applied to classes, methods and variables and the features cannot be changed. Final class cannot be subclassed, methods cannot be overridden 

final은 클래스, 메서드 및 변수에 적용 할 수 있으며 기능을 변경할 수 없습니다. Final 클래스는 subclassed로 만들 수 없으며 메서드를 overridden 할 수 없습니다.


89. Can you change the reference of the final object ?

final 객체의 reference를 변경할 수 있습니까?

No the reference cannot be changed, but the data in that object can be changed 

reference를 변경할 수는 없지만 해당 객체의 데이터는 변경할 수 있습니다.


90. Can abstract modifier be applied to a variable ?

abstract modifier를 변수에 적용 할 수 있습니까?

No it can be applied only to class and methods 

아니요. 클래스와 메소드에만 적용 할 수 있습니다.


91. Where can static modifiers be used ?

static modifiers를 어디에서 사용할 수 있습니까?

They can be applied to variables, methods and even a block of code, static methods and variables are not associated with any instance of class 

그것들은 변수, 메소드 및 심지어 코드 블록에도 적용될 수 있습니다. 정적 메소드 및 변수는 클래스의 모든 인스턴스와 연관되지 않습니다.


92. When are the static variables loaded into the memory 

정적 변수는 언제 메모리에 로드됩니까?

During the class load time 

class 로딩 시간 동안


93. When are the non static variables loaded into the memory ?

non static 변수는 언제 메모리에 로드 됩니까?

They are loaded just before the constructor is called 

생성자가 호출되기 바로 전에로드됩니다.


94. How can you reference static variables ?

정적 변수(static variables)를 어떻게 참조 할 수 있습니까?

You can refer to static variables directly using the class name and you dont need any object instance for it. 

Ex: ClassTest.execMethod(); can be used to access the execMethod() method of the class ClassTest

클래스 이름을 사용하여 정적 변수를 직접 참조 할 수 있으며 그 대신 객체 인스턴스가 필요하지 않습니다.

예 : ClassTest.execMethod (); ClassTest 클래스의 execMethod () 메서드에 액세스하는 데 사용할 수 있습니다.


95. Can static method use non static features of there class ?

정적 메서드는 클래스의 정적이 아닌 기능을 사용할 수 있습니까?

No they are not allowed to use non static features of the class, they can only call static methods and can use static data 

클래스의 정적이 아닌 기능을 사용할 수 없으며 정적 메서드 만 호출 할 수 있고 정적 데이터를 사용할 수 있습니다.


96. What is static initializer code ?

static initializer code 란 무엇입니까?

A class can have a block of initializer code that is simply surrounded by curly braces and labeled as static e.g. 

public class Test{ 

static int =10; 

static{ 

System.out.println("Hiiiiiii"); 

And this code is executed exactly once at the time of class load 

클래스는 중괄호로 둘러싸여 있고 static으로 레이블이 지정된 초기화 코드 블록을 가질 수 있습니다.

public class Test{ 

static int =10; 

static{ 

System.out.println("Hiiiiiii"); 

그리고이 코드는 클래스를로드 할 때 정확히 한 번 실행됩니다.


97. Where is native modifier used? 

native modifier는 어디에 사용됩니까?

It can refer only to methods and it indicates that the body of the method is to be found else where and it is usually written in language other than Java. 

메서드에만 참조 할 수 있으며 메서드의 본문을 찾을 수 있음을 나타냅니다. 일반적으로 Java 이외의 다른 언어로 작성됩니다.


98. When do you use continue and when do you use break statements ?

언제 continue를 사용합니까? 그리고 언제 break 문을 사용합니까?

When continue statement is applied it prematurely completes the iteration of a loop. 

When break statement is applied it causes the entire loop to be abandoned. 

continue 문을 적용하면 조기에 루프 반복이 완료됩니다.

break 문이 적용되면 전체 루프가 포기됩니다.


99. What do you understand by late binding or virtual method Invocation ?

late binding 또는  virtual method Invocation로 무엇을 이해합니까?

When a compiler for a non object oriented language comes across a method invocation, it determines exactly what target code should be called and build machine language to represent that call. In an object oriented language, this is not possible since the proper code to invoke is determined based upon the class if the object being used to make the call, not the type of the variable. Instead code is generated that will allow the decision to be made at run time. This delayed decision making is called as late binding 

비 객체 지향 언어를 위한 컴파일러가 메소드 호출을 가로 질러 오면, 정확히 어떤 타겟 코드가 호출되어야 하는지를 결정하고 그 호출을 표현하기위한 기계어를 빌드한다. 객체 지향 언어에서는 호출 할 적절한 코드가 변수의 형식이 아니라 호출하는 데 사용되는 경우 클래스를 기반으로 결정되기 때문에 가능하지 않습니다. 대신 런타임에 결정을 내릴 수있는 코드가 생성됩니다. 지연된 의사 결정은 지연 바인딩이라고합니다.


100. Can Overridden methods have different return types ?

오버라이드 된 메소드가 다른 return types을 가질 수 있습니까?

No they cannot have different return types 

다른 return types을 사용할 수 없습니다.


101. If the method to be overridden has access type protected, can subclass have the access type as private 

재정의 할 메소드에 액세스 유형이 protected 인 경우, 서브 클래스는 private로 액세스 유형을 가질 수 있습니다.

No, it must have access type as protected or public, since an overriding method must not be less accessible than the method it overrides 

아니요, 오버라이드하는 메소드가 오버라이드하는 메소드보다 덜 액세스 할 수 없으므로 액세스 유형이 protected 또는 public이어야합니다.


102. What are the Final fields & Final Methods ? 

최종 필드 및 최종 방법은 무엇입니까?

Fields and methods can also be declared final. A final method cannot be overridden in a subclass. A final field is like a constant: once it has been given a value, it cannot be assigned again.

필드와 메소드도 final로 선언 할 수 있습니다. 서브 클래스에서는 최종 메소드를 오버라이드 할 수 없습니다. 마지막 필드는 상수와 같습니다. 일단 값이 주어지면 다시 할당 할 수 없습니다.


원문출처 : http://java4732.blogspot.kr/2014/09/qus-write-program-to-calculate-largest.html



Posted by Joseph514
해외생활이야기2017. 8. 27. 12:31

[JOBINTERVIEW]자주 묻는 자바 인터뷰 FAQ(Frequently Asked Questions)



자바개발에 관한 인터뷰 질문과 답변을 번역기와 제 발번역으로 한번 번역해봤습니다.



Top Java Frequently Asked Questions

자주 묻는 질문 (FAQ)


1. Can you write a Java class that could be used both as an applet as well as an application? 

애플리케이션뿐만 아니라 애플릿으로도 사용할 수있는 Java 클래스를 작성할 수 있습니까?

Yes. Just, add a main() method to the applet. 

예. 그냥 main() 메소드를 애플릿에 추가하십시오.


2. Explain the usage of Java packages. 

Java 패키지의 사용법을 설명하십시오.

This is a way to organize files when a project consists of multiple modules. It also helps resolve naming conflicts when different packages have classes with the same names. Packages access level also allows you to protect data from being used by the non-authorized classes. 

이것은 프로젝트가 여러 모듈로 구성되어있을 때 파일을 구성하는 방법입니다. 또한 다른 패키지에 같은 이름의 클래스가있을 때 이름 충돌을 해결하는 데 도움이됩니다. 패키지 액세스 레벨을 사용하면 권한이없는 클래스가 데이터를 사용하지 못하게 할 수 있습니다.


3. If a class is located in a package, what do you need to change in the OS environment to be able to use it? 

클래스가 패키지에 있는 경우 이를 사용할 수 있으려면 OS 환경에서 무엇을 변경해야합니까?

You need to add a directory or a jar file that contains the package directories to the CLASSPATH environment variable. Once the class is available in the CLASSPATH, any other Java program can use it. 

패키지 디렉토리를 포함하는 jar 파일 또는 디렉토리를 CLASSPATH 환경 변수에 추가해야합니다. 클래스가 CLASSPATH에서 사용 가능 해지면 다른 Java 프로그램도이를 사용할 수 있습니다.


4. What's the difference between J2SDK 1.5 and J2SDK 5.0? 

J2SDK 1.5와 J2SDK 5.0의 차이점은 무엇입니까?

There's no difference, Sun Microsystems just re-branded this version. 

차이점은 없습니다. Sun Microsystems는이 버전을 다시 브랜드화했습니다.


5. What are the static fields & static Methods ? 

정적 필드(static fields) 및 정적 메소드(static Methods) 란 무엇입니까?

If a field or method defined as a static, there is only one copy for entire class, rather than one copy for each instance of class. static method cannot accecss non-static field or call non-static methods 

필드 또는 메소드가 정적으로 정의 된 경우 클래스의 각 인스턴스에 대해 하나의 복사본이 아닌 전체 클래스에 대해 하나의 복사본 만 있습니다. 정적 메서드는 비 정적 필드를 accecss하거나 비 정적 메서드를 호출 할 수 없습니다.


6. How are Observer and Observable used?

Observer와 Observable은 어떻게 사용됩니까?

Objects that subclass the Observable class maintain a list of observers. When an Observable object is updated it invokes the update() method of each of its observers to notify the observers that it has changed state. The Observer interface is implemented by objects that observe Observable objects. 

Observable 클래스의 하위 클래스 인 객체는 옵저버 목록을 유지 관리합니다. Observable 객체가 업데이트되면 각 옵저버의 update () 메소드를 호출하여 옵저버에게 상태가 변경되었음을 알립니다. Observer 인터페이스는 Observable 객체를 관찰하는 객체에 의해 구현됩니다.


7. Is null a keyword?

null이 키워드입니까?

No, the null value is not a keyword. 

아니요, null 값은 키워드가 아닙니다.


8. Which characters may be used as the second character of an identifier, but not as the first character of an identifier?

식별자의 두 번째 문자로 사용할 수 있지만 식별자의 첫 번째 문자로 사용할 수없는 문자는 무엇입니까?

The digits 0 through 9 may not be used as the first character of an identifier but they may be used after the first character of an identifier. 

0에서 9까지의 숫자는 식별자의 첫 문자로 사용할 수 없지만 식별자의 첫 문자 뒤에 사용할 수 있습니다.


9. How does Java handle integer overflows and underflows? 

Java는 정수 오버 플로우(integer overflows)와 언더 플로우(underflows)를 어떻게 처리합니까?

It uses those low order bytes of the result that can fit into the size of the type allowed by the operation. 

연산에 허용 된 유형의 크기에 맞출 수있는 결과의 하위 바이트를 사용합니다.


10. What is the difference between the >> and >>> operators? 

'>>' 연산자와 '>>>' 연산자의 차이점은 무엇입니까?

The >> operator carries the sign bit when shifting right. The >>> zero-fills bits that have been shifted out. 

>> 연산자는 오른쪽으로 이동할 때 부호 비트를 전달합니다. >>> zero-fills bits 비트가 이동되었습니다.


11. How many bits are used to represent Unicode, ASCII, UTF-16, and UTF-8 characters? 

유니 코드, ASCII, UTF-16 및 UTF-8 문자를 나타내는 데 사용되는 비트 수는 얼마입니까?

Unicode requires 16 bits and ASCII require 7 bits. Although the ASCII character set uses only 7 bits, it is usually represented as 8 bits. UTF-8 represents characters using 8, 16, and 18 bit patterns. UTF-16 uses 16-bit and larger bit patterns. 

유니 코드는 16 비트가 필요하고 ASCII는 7 비트가 필요합니다. ASCII 문자 집합은 7 비트 만 사용하지만 대개 8 비트로 표시됩니다. UTF-8은 8, 16 및 18 비트 패턴을 사용하는 문자를 나타냅니다. UTF-16은 16 비트 이상의 비트 패턴을 사용합니다.


12. Is sizeof a keyword? 

sizeof는 키워드입니까?

No, the sizeof operator is not a keyword. 

아니요, sizeof 연산자는 키워드가 아닙니다.


13. What restrictions are placed on the location of a package statement within a source code file?

소스 코드 파일 내의 패키지 문의 위치에는 어떤 제한이 있습니까?

A package statement must appear as the first line in a source code file (excluding blank lines and comments). It cannot appear anywhere else in a source code file. 

package 문은 소스 코드 파일의 첫 번째 행으로 나타나야합니다 (빈 행 및 주석 제외). 소스 코드 파일의 다른 곳에서는 사용할 수 없습니다.


14. What value does readLine() return when it has reached the end of a file?

readLine ()은 파일의 끝에 도달했을 때 어떤 값을 리턴합니까?

The readLine() method returns null when it has reached the end of a file. 

readLine () 메서드는 파일의 끝에 도달하면 null을 반환합니다.


15. What is a native method? 

native method 이란 무엇입니까?

A native method is a method that is implemented in a language other than Java. 

native method는 Java 이외의 언어로 구현되는 메서드입니다.


16. Can a for statement loop indefinitely?

for문 루프를 무기한으로 사용할 수 있습니까? 

Yes, a for statement can loop indefinitely. 

예, for문은 무한 루프 할 수 있습니다.

Ex: 

for(;;) ; 


17. What are order of precedence and associativity, and how are they used? 

우선 순위와 연관성의 순서는 무엇이며 어떻게 사용됩니까?

Order of precedence determines the order in which operators are evaluated in expressions. Associatity determines whether an expression is evaluated left-to-right or right-to-left 

우선 순위는 표현식에서 연산자가 평가되는 순서를 결정합니다. 연관성은 표현식이 왼쪽에서 오른쪽으로 또는 오른쪽에서 왼쪽으로 평가되는지 여부를 결정합니다.


18. What is the range of the short type? 

short type의 범위는 무엇입니까?

The range of the short data type is -(2^15) to 2^15 - 1. 

짧은 데이터 형식의 범위는 - (2 ^ 15) - 2 ^ 15 - 1입니다.


19. What is the range of the char type?

char type의 범위는 무엇입니까? 

The range of the char type is 0 to 2^16 - 1. 

char 형의 범위는 0 ~ 2 ^ 16 - 1입니다.


20. What is the difference between the Boolean & operator and the && operator? 

Boolean & 연산자와 && 연산자의 차이점은 무엇입니까?

&& is a short-circuit AND operator - i.e., The second condition will be evaluated only if the first condition is true. If the first condition is true, the system does not waste its time executing the second condition because, the overall output is going to be false because of the one failed condition. 

& operator is a regular AND operator - i.e., Both conditions will be evaluated always. 

&&는 단락 회로 AND 연산자입니다. 즉, 두 번째 조건은 첫 번째 조건이 참일 때만 평가됩니다. 첫 번째 조건이 참이면 시스템은 두 번째 조건을 실행하는 데 시간을 낭비하지 않으므로 하나의 실패 조건으로 인해 전체 출력이 거짓 일 것이기 때문입니다.

& 연산자는 정규 AND 연산자입니다. 즉, 두 조건이 항상 평가됩니다.


21. What is the GregorianCalendar class? 

GregorianCalendar 클래스 란 무엇입니까?

The GregorianCalendar provides support for traditional Western calendars. 

GregorianCalendar는 전통적인 서양 달력을 지원합니다.


22. What is the purpose of the Runtime class? 

Runtime 클래스의 목적은 무엇입니까?

The purpose of the Runtime class is to provide access to the Java runtime system. 

Runtime 클래스의 목적은 Java 런타임 시스템에 대한 액세스를 제공하는 것입니다.


23. What is the argument type of a program's main() method? 

프로그램의 main() 메소드의 인수 유형은 무엇입니까?

A program's main() method takes an argument of the String[] type. (A String Array)

프로그램의 main () 메소드는 String [] 유형의 인수를 취합니다. (문자열 배열) 


24. Which Java operator is right associative? 

어떤 자바 연산자가 right associative입니까?

The = operator is right associative.

'='연산자가 right associative입니다. 


25. What is the Locale class? 

Locale 클래스 란 무엇입니까?

This class is used in conjunction with DateFormat and NumberFormat to format dates, numbers and currency for specific locales. With the help of the Locale class you’ll be able to convert a date like “10/10/2005” to “Segunda-feira, 10 de Outubro de 2005” in no time. If you want to manipulate dates without producing formatted output, you can use the Locale class directly with the Calendar class

이 클래스는 DateFormat 및 NumberFormat과 함께 사용되어 특정 로케일의 날짜, 숫자 및 통화의 서식을 지정합니다. Locale 클래스의 도움으로 "10/10/2005"와 같은 날짜를 "Segunda-feira, 10 de Outubro de 2005"로 즉시 변환 할 수 있습니다. 형식화 된 출력을 생성하지 않고 날짜를 조작하려면 Calendar 클래스와 함께 Locale 클래스를 직접 사용할 수 있습니다.


26. Can a double value be cast to a byte? 

double 값을 한 바이트로 형변환 할 수 있습니까?

Yes, a double value can be cast to a byte. But, it will result in loss of precision. 

예, double 값을 바이트로 형변환 할 수 있습니다. 하지만 정밀도가 떨어질 수 있습니다.


27. What is the difference between a break statement and a continue statement? 

break 문과 continue 문 사이의 차이점은 무엇입니까?

A break statement results in the termination of the statement to which it applies (switch, for, do, or while). A continue statement is used to end the current loop iteration and return control to the beginning of the loop. 

break 문을 사용하면 적용되는 명령문이 종료됩니다 (switch, for, do 또는 while). continue 문은 현재 루프 반복을 끝내고 제어를 루프 시작 부분으로 되돌리기 위해 사용됩니다.


28. How are commas used in the intialization and iterationparts of a for statement? 

for문을 초기화하고 반복 할 때 쉼표는 어떻게 사용됩니까?

Commas are used to separate multiple statements within the initialization and iteration parts of a for statement. 

쉼표는 for 문에서 초기화 및 반복 부분 내에서 여러 명령문을 분리하는 데 사용됩니다.


29. How are Java source code files named? 

Java 소스 코드 파일의 이름은 어떻게 지정됩니까?

A Java source code file takes the name of a public class or interface that is defined within the file. A source code file may contain at most one public class or interface. If a public class or interface is defined within a source code file, then the source code file must take the name of the public class or interface. If no public class or interface is defined within a source code file, then the file can take on a name that is different than its classes and interfaces. Source code files use the .java extension. 

Java 소스 코드 파일은 파일 내에 정의 된 공용 클래스 또는 인터페이스의 이름을 사용합니다. 소스 코드 파일에는 하나 이상의 공용 클래스 또는 인터페이스가 포함될 수 있습니다. 공용 클래스 또는 인터페이스가 소스 코드 파일 내에 정의 된 경우 소스 코드 파일은 공용 클래스 또는 인터페이스의 이름을 가져야합니다. 소스 코드 파일 내에 공용 클래스 나 인터페이스가 정의되어 있지 않으면 해당 파일은 해당 클래스와 인터페이스와 다른 이름을 사용할 수 있습니다. 소스 코드 파일은 .java 확장자를 사용합니다.


30. What value does read() return when it has reached the end of a file? 

파일의 끝에 도달했을 때 read ()가 반환하는 값은 무엇입니까?

The read() method returns -1 when it has reached the end of a file. 

read () 메서드는 파일의 끝에 도달하면 -1을 반환합니다.


31. Can a Byte object be cast to a double value? 

Byte 객체를 double 값으로 변환 할 수 있습니까?

No, an object cannot be cast to a primitive value. 

아니요, 객체는 원시(primitive) 값으로 형변환 될 수 없습니다.


32. What is the Dictionary class? 

Dictionary 클래스 란 무엇입니까?

The Dictionary class provides the capability to store key-value pairs. It is the predecessor to the current day HashMap and Hashtable. 

Dictionary 클래스는 키 - 값 쌍을 저장할 수있는 기능을 제공합니다. 현재의 HashMap과 Hashtable의 전신입니다.


33. What is the % operator? 

% 연산자 란 무엇입니까?

It is referred to as the modulo or remainder operator. It returns the remainder of dividing the first operand by the second operand. 

모듈로(modulo) 또는 나머지 연산자(remainder operator)라고 합니다. 첫 번째 피연산자를 두 번째 피연산자로 나눈 나머지를 반환합니다.


34. What is the difference between the Font and FontMetrics classes?

Font 클래스와 FontMetrics 클래스의 차이점은 무엇입니까?

The FontMetrics class is used to define implementation-specific properties, such as ascent and descent, of a Font object. 

FontMetrics 클래스는, Font 오브젝트의 상승(ascent) 및 하강(descent)등의 구현 고유의 property를 정의하기 위해서 사용합니다.


35. How is rounding performed under integer division? 

정수 나누기에서 반올림은 어떻게 수행됩니까?

The fractional part of the result is truncated. This is known as rounding toward zero. 

결과의 소수 부분이 잘립니다. 이것은 0으로 반올림하는 것으로 알려져 있습니다.


36. What is the difference between the Reader/Writer class hierarchy and the InputStream/OutputStream class hierarchy?

Reader / Writer 클래스 계층 구조와 InputStream / OutputStream 클래스 계층 구조의 차이점은 무엇입니까?

The Reader/Writer class hierarchy is character-oriented, and the InputStream/OutputStream class hierarchy is byte-oriented. 

Reader / Writer 클래스 계층 구조는 문자 지향이며 InputStream / OutputStream 클래스 계층 구조는 바이트 지향입니다.


37. What is the SimpleTimeZone class? 

SimpleTimeZone 클래스 란 무엇입니까?

The SimpleTimeZone class provides support for a Gregorian calendar. You can use it to manipulate dates & times.

SimpleTimeZone 클래스는 그레고리력을 지원합니다. 날짜 및 시간을 조작하는 데 사용할 수 있습니다.


38. For which statements does it make sense to use a label?

어떤 문구에 대해 라벨을 사용하는 것이 맞습니까?

The only statements for which it makes sense to use a label are those statements that can enclose a break or continue statement. 

레이블을 사용하는 것이 합당한 유일한 명령문은 break 또는 continue 문을 포함 할 수있는 명령문입니다.


39. What is the purpose of the System class?

System 클래스의 목적은 무엇입니까?

The purpose of the System class is to provide access to system resources. 

System 클래스의 목적은 시스템 리소스에 대한 액세스를 제공하는 것입니다.


40. Is &&= a valid Java operator? 

 '&&='은 유효한 Java 연산자입니까?

No, it is not a valid operator. 

아니, 유효한 연산자가 아닙니다.


41. Name the eight primitive Java data types. 

기본 Java 데이터 유형 8 가지를 명명하십시오.

The eight primitive types are byte, char, short, int, long, float, double, and boolean. 

여덟 가지 기본 유형은 byte, char, short, int, long, float, double 및 boolean입니다.


42. What restrictions are placed on the values of each case of a switch statement? 

switch 문에 대한 each case의 값에는 어떤 제한이 있습니까?

During compilation, the values of each case of a switch statement must evaluate to a value that can be promoted to an int value. 

컴파일하는 동안 switch 문의 each case의 값은 int 값으로 승격 될 수 있는 값으로 평가되어야합니다.


43. What is the difference between a while statement and a do statement? 

while 문과 do 문의 차이점은 무엇입니까?

A while statement checks at the beginning of a loop to see whether the next loop iteration should occur. A do statement checks at the end of a loop to see whether the next iteration of a loop should occur. The do statement will always execute the body of a loop at least once. 

while 문은 루프의 시작 부분에서 다음 루프 반복이 발생하는지 여부를 확인합니다. do 문은 루프의 끝에서 루프의 다음 반복이 발생하는지 여부를 확인합니다. do 문은 항상 루프의 본문을 적어도 한 번 실행합니다


44. What is the difference between static and non-static variables? 

정적(static) 변수와 비 정적(non-static) 변수의 차이점은 무엇입니까?

A static variable is associated with the class as a whole rather than with specific instances or objects of a class. Non-static variables take on unique values with each object instance. 

정적 변수는 특정 인스턴스 또는 클래스의 객체가 아니라 클래스와 전체적으로 연관됩니다. 비 정적 변수는 각 객체 인스턴스에서 고유 한 값을 사용합니다.


45. What is the purpose of the File class? 

File 클래스의 목적은 무엇입니까?

The File class is used to create objects that provide access to the files and directories of a local file system. 

File 클래스는 로컬 파일 시스템의 파일 및 디렉토리에 대한 액세스를 제공하는 객체를 만드는 데 사용됩니다.


46. Which Math method is used to calculate the absolute value of a number?

숫자의 절대 값을 계산하는 데 사용되는 Math 방법은 무엇입니까?

The abs() method is used to calculate absolute values. 

abs () 메서드는 절대 값을 계산하는 데 사용됩니다.


47. Which non-Unicode letter characters may be used as the first character of an identifier?

유니 코드가 아닌 문자가 식별자의 첫 문자로 사용될 수 있습니까?

The non-Unicode letter characters $ and _ may appear as the first character of an identifier 

비 유니 코드 문자 인 '$' 및 '_'은 식별자의 첫 문자로 나타날 수 있습니다.


48. What restrictions are placed on method overloading? 

메소드 오버로딩에는 어떤 제한이 있습니까?

Two methods may not have the same name and argument list but different return types. 

두 메서드는 이름과 인수 목록(argument list)이 같지 않지만 반환 유형이 다를 수 있습니다.


49. What is the return type of a program's main() method? 

프로그램의 main () 메소드의 반환 유형은 무엇입니까?

A program's main() method has a void return type. i.e., the main method does not return anything. 

프로그램의 main () 메소드에는 void 반환 유형이 있습니다. 즉, main 메서드는 아무 것도 반환하지 않습니다.


50. What an I/O filter? 

I / O 필터 란 무엇입니까?

An I/O filter is an object that reads from one stream and writes to another, usually altering the data in some way as it is passed from one stream to another.

I / O 필터는 한 스트림에서 읽고 다른 스트림에 씁니다. 일반적으로 한 스트림에서 다른 스트림으로 전달 될 때 어떤 방식 으로든 데이터를 변경합니다.


원문출처 : http://java4732.blogspot.kr/2015/05/top-java-frequently-asked-questions.html



Posted by Joseph514
해외생활이야기2017. 8. 18. 17:24

-[JOBINTERVIEW]자주하는 Web Developer Interview Questions & Answers


이번에는 자주 사용하는 질문 뿐 아니라, 답변도 같이 적어보겠습니다.


TOP 17이라고 적혀잇는데, 정작보면 15개이고, 마지막 15번째 문제는 무슨말인지 만들다가 말았더군요.

아마 HTML에서 DIV와 Frame사이의 차이점을 이야기하는것같았습니다.


자주하는 웹 개발자 인터뷰 질문 및 답변


1) Explain what are the key responsibilities of a Web Developer?

웹 개발자의 주요 책임은 무엇인지 설명하십시오.


-Program test and debug all web applications

-Design, develop, test and deploy web applications

-Uploading sites onto server and registering it with different search engines

-Coordinate with other designers and programmers to develop web projects

-Fix bugs, troubleshoot and resolve problems

-In case of system failure initiate periodic testing and implement contingency plans

-Develop appropriate code structures to solve specific tasks

-Support and assist in the upkeep and maintenance of websites

-Assume ownership of code throughout staging, development, testing and production


-프로그램 테스트 및 모든 웹 응용 프로그램 디버깅

-웹 애플리케이션의 설계, 개발, 테스트 및 전개

-서버에 사이트 업로드 및 다른 검색 엔진에 등록

-다른 디자이너 및 프로그래머와 협력하여 웹 프로젝트 개발

-버그 수정, 문제 해결 및 문제 해결

-시스템 장애가 발생할 경우 정기적 인 테스트를 시작하고 비상 계획을 수립하십시오

-특정 작업을 해결하는 적절한 코드 구조 개발

-웹 사이트 유지 및 유지 보수 지원 및 지원

-준비, 개발, 테스트 및 생산 과정에서 코드 소유권을 주장합니다.


2) What web developer should know?

웹 개발자는 무엇을 알아야합니까?


A good web developer should know

웹개발자는 알아야합니다.

HTML

CSS

SQL

PHP/Ruby/Python

JQuery

JavaScript


3) Explain what is CORS? How does it work?

CORS가 무엇인지 설명하십시오. 어떻게 작동합니까?

(CORS) Cross-Origin Resource Sharing is a mechanism that enables many resources (e.g.,JavaScript, fonts etc.) on a web page to be requested from another domain outside the domain from which the resource originated. 

It is a mechanism supported in HTML5 that manages XMLHttpRequest access to a domain different.

(CORS) Cross-Origin Resource Sharing은 웹 페이지의 많은 리소스 (예 : JavaScript, 글꼴 등)를 리소스가 생성 된 도메인 외부의 다른 도메인에서 요청할 수있게하는 메커니즘입니다. 

HTML5에서 지원되는 메커니즘으로 다른 도메인에 대한 XMLHttpRequest 액세스를 관리합니다.


4) List out the advantage of HTTP/2 as compared with HTTP 1.1?

HTTP 1.1과 비교하여 HTTP / 2의 이점을 나열하십시오.


The advantage of HTTP/2 compared to HTTP/1.1 is

-HTTP headers data compression

-Server push technologies

-Over a single TCP connection parallel loading of page elements

-Prioritization of request

HTTP / 1.1에 비해 HTTP / 2의 장점은

-HTTP 헤더 데이터 압축

-서버 푸시 기술

-단일 TCP 연결을 통해 페이지 요소의 병렬로드

-요청의 우선 순위 지정


5) Explain what is an ETag and how does it work?

ETag는 무엇인지 설명하고 어떻게 작동합니까?


An ETag is an opaque identifier allocated by a web server to a specific version of a resource found at a URL. 

The ETag is a part of HTTP, the protocol for the world wide web and when the server reads the ETag from client request, the server can then tell whether to send the file (HTTP 200) or tell the client just to use their local copy (HTTP 304).

ETag는 웹 서버가 URL에서 찾은 특정 버전의 리소스에 할당되는 불투명 한 식별자입니다. 

ETag는 월드 와이드 웹의 프로토콜 인 HTTP의 일부이며, 서버가 클라이언트 요청에서 ETag를 읽을 때 서버는 파일 (HTTP 200)을 전송할지 클라이언트에게 로컬 복사본을 사용할지 여부를 알릴 수 있습니다 (HTTP 304).


6) Explain what is long polling?

long polling이 무엇인지 설명하십시오.


Long polling is a web application development pattern used to emulate pushing data from the server to the client. 

When the long polling is used, the client sends a request to the server, and the connection remains intact until the server is ready to send data to the client. The connection will be closed only after the data is sent back to the client or connection timeout occurs.

long polling은 서버에서 클라이언트로 데이터를 에뮬레이트하기 위해 사용되는 웹 애플리케이션 개발 패턴입니다. 

long polling이 사용되면 클라이언트는 서버에 요청을 보내고 서버는 클라이언트에 데이터를 보낼 준비가 될 때까지 연결을 그대로 유지합니다. 데이터가 클라이언트로 다시 전송되거나 연결 시간 초과가 발생한 후에만 연결이 닫힙니다.


7) Explain what is DTD (Document Type Declaration)? Mention what is the difference between CDATA and PCDATA in DTD?

DTD (Document Type Declaration) 란 무엇입니까? DTD에서 CDATA와 PCDATA의 차이점은 무엇입니까?


A DTD means Document Type Definition (DTD) which defines the structure, legal elements and attributes of an XML document.

PCDATA: A PCDATA is a Parsed Character Data. XML parsers usually parse all the

text in an XML document.

CDATA: While CDATA is an Unparsed Character Data, the term CDATA is used about

text data that should not be parsed by the XML parser.

DTD는 XML 문서의 구조, 적법 요소 및 속성을 정의하는 DTD (Document Type Definition)를 의미합니다.

PCDATA : PCDATA는 구문 분석 된 문자 데이터입니다. XML 파서는 일반적으로 모든

XML 문서의 텍스트.

CDATA : CDATA는 분석되지 않은 문자 데이터이지만 CDATA라는 용어는

XML 파서가 구문 분석해서는 안되는 텍스트 데이터


8) Mention some tips you can use to reduce the load time of a web application that you have written?

작성한 웹 응용 프로그램의로드 시간을 줄이기 위해 사용할 수있는 몇 가지 팁을 언급합니까?


To decrease the load time of a web application you have to follow the following tips


-Optimize images to no longer than screen resolution and save it as a compressed file

-Eliminate all JavaScript files to reduce the amount of transferable data

-Combine & Mininify all CSS and JS and call them in footer

-Defer or Asynch JS Files


웹 응용 프로그램의로드 시간을 줄이려면 다음 팁을 따라야합니다.


-이미지를 화면 해상도보다 더 이상 최적화하지 말고 압축 파일로 저장하십시오.

- 전송 가능한 데이터 양을 줄이기 위해 모든 JavaScript 파일을 추출하십시오.

-모든 CSS와 JS를 깔끔하게 정리하고 꼬리말로 호출

-Defer 또는 Asynch JS 파일


9) Mention what is the correct way to include JavaScript into your HTML?

HTML에 JavaScript를 포함시키는 올바른 방법은 무엇입니까?


The correct way to include JavaScript into your HTML is by using inline event handlers or inline code.

자바 스크립트를 HTML에 포함시키는 올바른 방법은 인라인 이벤트 핸들러 또는 인라인 코드를 사용하는 것입니다.


10) Explain in CSS, how can you make a form element's background color change when the user is entering text? Does this work in all browsers?

CSS에서 설명합니다. 사용자가 텍스트를 입력 할 때 양식 요소의 배경색을 어떻게 바꿀 수 있습니까? 이 기능이 모든 브라우저에서 작동합니까?


Yes, you can change the default look of form elements by styling their HTML tags: input, select and textarea. but it won’t work for all browsers.

예, HTML 태그의 스타일을 지정하여 양식 요소의 기본 모양을 변경할 수 있습니다 (input, select 및 textarea). 그러나 모든 브라우저에서 작동하지는 않습니다.


11) Explain what is the difference between cookies and local storage?

쿠키와 로컬 스토리지의 차이점은 무엇입니까?


-Client Side/Server Side 

Cookies : Data accessible both at client side and server side. The data is sent to the serverside with every cookie request.

Local Storage : Only at the local browser side data is accessible. Server cannot use local storage until deliberately sent a request to the server via POST or GET

-Size

Cookies : Storage capacity of cookies is 4095 bytes/cookie

Local Storage : Storage capacity of local storage is 5MB per domain

-Expiration

Cookies : Cookies have expiration and cookie data gets deleted after some time

Local Storage : There is no expiration and has to remove manually


-클라이언트 측 / 서버 측

쿠키 : 클라이언트 측과 서버 측에서 모두 액세스 할 수있는 데이터입니다. 데이터는 모든 쿠키 요청과 함께 서버 측으로 전송됩니다.

로컬 저장소 : 로컬 브라우저에서만 데이터에 액세스 할 수 있습니다. 서버는 의도적으로 POST 또는 GET을 통해 서버에 요청을 보낼 때까지 로컬 저장소를 사용할 수 없습니다.

-크기

쿠키 : 쿠키의 저장 용량 = (4095바이트/쿠키)입니다.

로컬 저장소 : 로컬 저장소의 저장소 용량은 도메인 당 5MB입니다.

-만료 시

쿠키 : 쿠키의 유효 기간이 만료되고 잠시 후 쿠키 데이터가 삭제됩니다

로컬 저장소 : 만료가 없으며 수동으로 제거해야 합니다.


12) In HTML what tag can be used for a multi-line text input control?

HTML에서 다중 라인 텍스트(multi-line text) 입력 컨트롤을 위해 사용할 수 있는 태그는 무엇입니까?


For multi-line text input control, you can use the “textarea tag”.

여러 줄 텍스트 입력 컨트롤의 경우 "textarea 태그"를 사용할 수 있습니다.


13) Explain how can you refer to CSS file in the web page?

웹 페이지에서 CSS 파일을 어떻게 참조 할 수 있는지 설명하십시오.


You can refer to the .CSS file in the webpage by using the tag. It should be kept between tag.

태그를 사용하여 웹 페이지의 .CSS 파일을 참조 할 수 있습니다. 태그 사이에 보관해야 합니다.


14) List out few ways you can reduce page load time?

페이지 로드 시간을 줄일 수 있는 몇 가지 방법을 나열하십시오.


You can do following things to reduce the page load time


Reduce image size

Remove unnecessary widgets

HTTP compression

Placing CSS at the top and script reference at the bottom or in external files

Reduce lookups

Minimize redirects

Caching,


페이지 로드 시간을 줄이려면 다음을 수행 할 수 있습니다.


이미지 크기 줄이기

불필요한 위젯 제거

HTTP 압축

상단에 CSS를 배치하고 맨 아래 또는 외부 파일에 스크립트 참조

lookups 축소

redirects 최소화

캐싱


출처 : https://career.guru99.com/top-17-web-developer-interview-questions/


Posted by Joseph514
해외생활이야기2017. 8. 18. 16:03

-[JOBINTERVIEW]몇가지의 코딩인터뷰 질문 번역해봤습니다.

제가 영어가 짧아고 Ruby나 파이썬은 익숙하지 않아서 좀 번역이 시원찮네요.

일단 Cover-letter와 Resume가 중요해야겠지만, 대략적으로 어떤 질문을 하는지 좀 알아봐야 될거 같네요.

필요하시다면 참고 해보시기 바랍니다.


Coding interview questions


-Java

How are Runtime exceptions different from Checked exceptions?

Runtime exceptions는 Checked exceptions와 어떻게 다릅니까?


Why use an object Factory and how would you implement the Singleton pattern?

왜 object Factory를 사용해야하고 어떻게 Singleton pattern을 구현하겠습니까?


Is this possible in Java? “A extends B, C”

자바로 가능합니까? "A 확장 B, C"


What is difference between String, StringBuilder and StringBuffer in Java?

자바에서 String, StringBuilder 및 StringBuffer의 차이점은 무엇입니까?


-Ruby

What is the use of load and require in Ruby?

Ruby에서 사용되는 load and require 무엇입니까?


Explain each of the following operators and how and when they should be used: ==, ===, eql?, equal?

다음 연산자 각각과 언제 어떻게 사용해야하는지 설명하십시오 : ==, ===, eql?, equal?


What is a module? Can you tell me the difference between classes and modules?

모듈이란 무엇입니까? 클래스와 모듈의 차이점을 알려주시겠습니까?


What are some of your favorite gems?

좋아하는 gems에는 어떤 것들이 있습니까?


-Python

Why are functions considered first class objects in Python?

파이썬에서 functions가 first class objects로 간주되는 이유는 무엇입니까?


Can you explain circular dependencies in Python and potential ways to avoid them?

파이썬에서의 순환 의존성과 그것들을 피할 수있는 잠재적 인 방법을 설명 할 수 있습니까?


Give an example of filter and reduce over an iterable object.

필터의 예제를 제공하고 반복 가능한 객체를 줄입니다.


Can you explain the uses/advantage of a generator?

generator 의 용도 / 장점을 설명 할 수 있습니까?


-.NET

What is the WebSecurity class in .NET? What is its use?

.NET의 WebSecurity 클래스는 무엇입니까? 그 용도는 무엇입니까?


In .NET, attributes are a method of associating declarative information with C# code. Please describe the way they are used and a proper use case.

.NET에서 속성은 C # 코드와 선언 정보를 연결하는 방법입니다. 사용 방법과 적절한 사용 사례를 설명하십시오. 


Which is the best way to pass configuration variables to ASP.NET applications?

ASP.NET 응용 프로그램에 구성 변수를 전달하는 가장 좋은 방법은 무엇입니까?


Is it possible in .NET to extend a class (any class) with some extra methods? If yes, how can it be accomplished?

.NET에서 몇 가지 추가 메서드로 클래스 (any 클래스)를 확장 할 수 있습니까? 그렇다면 어떻게 성취 될 수 있습니까?


-PHP

If you need to generate random numbers in PHP, what method would you follow?

PHP에서 임의의 숫자(random numbers)를 생성해야한다면 어떤 방법을 따르겠습니까?


What’s the difference between the include() and require() functions?

include ()와 require () 함수의 차이점은 무엇입니까?


Explain how you develop and integrate plugins for PHP frameworks, like Laravel and Yii.

Laravel 및 Yii와 같은 PHP 프레임 워크 용 플러그인을 개발하고 통합하는 방법을 설명하십시오.


How can you get web browser’s details using PHP?

PHP를 사용하여 웹 브라우저의 세부 사항을 어떻게 얻을 수 있습니까?


-HTML/CSS

Can you describe the difference between inline elements and block elements?

inline elements와 block elements의 차이점을 설명해 주시겠습니까?


Why is it generally a good idea to position CSS s between and JS s just before ? Do you know any exceptions?

CSS를 배치하기 전에 일반적으로 JS를 배치하는 것이 일반적으로 좋은 이유는 무엇입니까? 예외를 아십니까?


Can you describe how padding and margin differ?

padding과 margin이 어떻게 다른지 설명 할 수 있습니까?


How is responsive design different from adaptive design?

반응형 디자인(responsive design)과 적응형 디자인(adaptive design)의 차이점은 무엇입니까?


출처 : https://resources.workable.com/coding-interview-questions



Posted by Joseph514
IT이야기/입코딩2017. 8. 7. 14:51

-프로그래머는 학력이 필요할까요?


프로그래머와 학력의 관계에 대해서 한번 포스팅 해보겠습니다.

참고로 저는 지방 듣보잡 4년제 컴퓨터 공학과를 나왔습니다. 

학력이 어떻니 할 정도로 좋은 위치에 있고 뛰어난 실력을 가지지도 않습니다.

인터넷에서 흔히 볼 수 있는 전공자 부심은 아니고, 대학교에 학사나 석사, 박사를 공부하면 어떤 점이 더 유리한곳인지 이야기하고 싶네요.


참고로 이야기를 적자면, 비전공자들은 컴퓨터 공학과를 프로그래머를 양성하는 교육기관으로 생각하는 경향이 있는데, 사실 프로그래밍은 컴퓨터 공학과에서 배우는 것들 중 일부분에 지나지 않습니다.

흔히 일반인들은 컴퓨터 공학과를 프로그래밍을 배우는 학과라고 생각하지만, 그것은 마치 경제학과가 펀드매니저를 양성하는 학과라거나, 법학과는 사법시험 합격 요령을 배우는 곳이라고 생각하는 것과 같습니다. 

컴퓨터 공학과는 컴퓨터 공학이라는 독립적인 학문을 배우는 학과입니다. 


흔히 프로그래머에게는 학력이 중요하지 않다고, 심지어 대학 교육이 반드시 요구되는 분야가 아니라고들 말을 합니다. 반대로 가능한 한 명문 대학과 명문 대학원을 가야 많은 것을 배울 수 있고 취업도 잘 된다는 말을 하는 사람도 있습니다. 이렇게 상반된 이야기를 듣게 되는데, 이는 상황에 따라 둘 다 맞 다고 볼수 있습니다.


-저학력이라도 상관없는 상황

웹, 모바일 개발자처럼 직업학교에서도 배우는 정도의 커리큘럼으로 정리가 되어 있고 복잡한 처리를 필요로 하지 않는 분야

자기가 직접 앱을 만들어서 팔고 회사 차릴 수 있는 사람. (다만 통계상 학력이 높은 사람이 회사를 차릴수록 수익률이 높고 오래가고 도산률이 낮습니다.)

중소기업이나 인기없는 스타트업 등 쉽게 들어갈 수 있는 직장에 들어가더라도 만족하는 사람. (낮은 대우 받고 계속 다니는 평범한 경우, 그 직장 규모 전체를 키워버리는 특이한 경우, 거기서 쌓은 경력으로 대기업에 이직하려는 경우 셋 다 포함.)

아래 상황에 필요한 것들을 전부 독학할수 있고, 학위 없이도 대졸들을 전부 떨쳐내고 뽑힐 만한 능력자. (빌게이츠, 스티브 워즈니악, 리누스 토르발즈 같은 말이 능력자지, 이정도는 거의 정점 수준의 프로그래머입니다. 게다가 예시로 든 프로그래머들은 전부 세계에서 손 꼽히는 명문대를 졸업했거나 창업하려고 자퇴한 사람들입니다.)

공무원 시험이나 공공기관 시험 치려는 사람


-고학력이 반드시 필요한 상황

수학, 물리학, 컴퓨터공학 등 대학교 3학년 이상의 고급 지식이 필요한 프로그래밍(소프트웨어,빅데이터,데이터베이스 등)

국내 대기업, 다국적 기업에 경력 없이 입사하고 싶은 사람

해외취업 목표.

교수, 정부출연연구소 목표


확실히 제가 해외 취업을 준비하면서 전공자인게 유리하더군요. 한국에서 SI, SM 개발자를 하더라도 전공자에 기사 자격증 있으면 이득은 없어도 최소한 손해는 안 보는것 같습니다.


프로그래밍 분야에 있어서 학력 = 실력이 아닙니다. 고가의 실험 실습 도구가 필요한 다른 분야와는 다르게 프로그래머에게는 오직 컴퓨터 한 대만 있으면 충분하고, 필요한 관련 지식에 대한 정보는 인터넷의 정보 바다에 흘러 넘칩니다. 



게을러서, 즉 자기가 안 찾아봐서 관련 지식 및 정보를 모르는 경우는 있어도, 찾을 수가 없어서 관련 지식 및 정보를 모르는 경우는 극히 드물다고 할 수 있습니다. 

그리고 일반적인 기업의 일반적인 코딩 및 실무에 필요한 능력만 따진다면, 대학에서 배우는 추상적인 지식들은 사실 쓸모 없습니다.

그러나 아이러니하게도 "한국에서" 고급 지식을 익혀서 고급 엔지니어로 성장하려면 상위권 대학에 진학해야 합니다. 한국에서 고급 지식을 효율적으로 얻을 수 있는 곳은 좋은 대학 뿐입니다. 

널리 알려진 사실이지만 한국의 컴퓨터공학/소프트웨어과는 구조적인 문제로 커리큘럼이 낙후되어 있습니다. 

세계 랭킹 50위권인 서울대학교나 KAIST에서나 미국의 제대로 된 탄탄한 커리큘럼에 그렇게 많이 꿇리지 않는 교육을 받을 수 있습니다. 



프로그래밍에 필요한 지식(선형대수학, 확률/통계론, 이산수학, 데이타구조, 알고리즘, 아키텍쳐, 프로그래밍 언어, OS, 오토마타, 시스템 프로그래밍, 네트워크, 소프트웨어 공학, 데이터베이스, 컴퓨터그래픽, 전산논리학, 컴파일러, 계산이론, 정보보호, 인공지능, 인간-컴퓨터 상호작용 등)은 실무 경험이나 독학으로 익히기 어렵습니다. 

벽돌공 일을 30년 하면 건축 설계에 대해 모르지는 않게 되겠지만, 그렇다고 고급 건축 설계자가 될 수는 없다는 뜻과 같습니다. 현업에 종사한지 2년 내로, 내가 나온 대학이 좋은 대학이었는지 아니었는지 뼈저리게 느끼게 됩니다. 


한국의 대학원 또한 마찬가지. 애초에 중요한 건 대학원을 나왔느냐가 아니라 어떤 대학원에서 어떤 수준의 교육을 받고 어떤 퀄리티의 논문을 냈느냐라는 것을 상기해야 합니다. 

현실적으로 낙후된 대학원 환경에서 제대로된 교육을 제공하는 대학원은 한국에 두세 곳 뿐이고, 이런 대학원은 들어가기가 상당히 어렵습니다.

그나마 자대생(학부를 해당 대학에서 마친 학생)의 경우도 절반 넘게 학점에서 컷트 당합니다. 

자대가 아닌 경우 들어가기는 완전히 바늘구멍인데, 인서울 정도에서 이런 대학원을 가려면 과 1위를 해도 떨어지는 경우가 대다수인 상황이라고 합니다.

참고로 이건 한국뿐 아니라 미국도 마찬가지입니다. 

최상위권 대학은 한국의 탑3 대학보다도 환경이 좋지만, 조금만 순위가 내려가더라도 수업의 질이 크게 떨어지고, 이는 결국 졸업자의 엄청난 경쟁력 저하로 이어집니다. 


좋은 대학을 가려면 수능 공부만 해야 한다고 생각하기 쉬운데, 그렇지도 않습니다. 

수시 전형이 7~80%가 된 상황에서 정보올림피아드나 프로그래밍을 잘 하는 것이 오히려 확률적으로 더 유리합니다. 

하지만 수시로 지원한다 해도 프로그래밍만 파지 말고 내신 반영 비율을 확인해야 합니다. 프로그래밍만 할 줄 아는 인재를 뽑고자 하는 대학은 거의 없다고 보여 집니다.

대기업에 입사하고자 할때는 대학 졸업장이 당연히 필요하고, 괜찮은 중견기업에 지원할 때도 필요합니다.

채용자 입장에서는 그 많은 지원자들의 능력을 일일이 직접적으로 다 테스트해서 체크해 볼 수는 없는 노릇이고, 결국 간접적으로 추정해야 하는데, 거기에 사용되는 자료가 학교 성적을 비롯하여, 학력/학벌 등인 것입니다.

설사 SI이나 SM 업무를 하더라도 "갑"에서는 개발자의 학력이나 학벌을 중요시 여기기도 합니다. 

그리고 대학교 졸업장 없이는 실력이 뛰어나더라도 상대적으로 설계 경험을 접해보기 힘든 경향이 있습니다. 

사실 학력과 실력은 반드시 일치하는 것도 아니고, 이 분야 특성상 학력과 실력이 무관한 경우도 매우 많지만, 이 분야 특성을 잘 모르는 일반인들로서는 사회 통념상 학력이 없으면, '저 사람은 대학도 나오지 않았는데, 당연히 실력도 없을 거야~' 라는 식으로 선입견 내지 편견을 가지기 쉽습니다. 

그래서 그러한 편견을 가진 일반인이 발주를 하는 갑의 위치에 있다면, 실력을 보지도 않고 쉽게 무시하기 일쑤입니다. 


하여간 한국에서 사회생활 하려면 대학은 나와야 합니다. 미국도 프로그래머로 취업하려면 보통 대학을 졸업해야 하고, 구글 오라클 등의 대기업에 취업하려면 좋은 학교 출신이 아무래도 유리합니다.

물론 자기가 직접 벤처기업을 창업하는 경우에는 대학졸업장이 필요 없습니다. 그러나 만약 자신이 카네기멜론 컴공 석사이상 졸업자라면, 국내에서 소프트웨어 벤쳐 한다고 하면 수 억원 이상은 그냥 투자 받을 수 있습니다.


획기적인 알고리즘을 만들어낸다는 교수들이 바로 박사들입니다. 또, 알게 모르게 석사 학위도 꽤 쳐줍니다. 

구글 검색엔진에 사용된 알고리즘을 고안해낸 래리 페이지가 바로 석사입니다. 더붙여, 좋은 지도교수님 밑에서 잘 트레이닝 된 석사가 건성으로 졸업한 박사보다 나을 때도 많습니다. 

끝으로, 교수가 코딩 안하는 이유는 어느정도 급만 되면 코딩할 필요가 없는 것도 있는 한편, 박사과정 학생들이 가져다 주는 획기적인 알고리즘이 타당한지 검증하고 논문 검토하는 데도 바쁘기 때문이기도 합니다. 

그 와중에 애들도 가르치고, 연구도 따와야 하고, 학내 정치도 해야 되기 때문이죠.


본인 영어 실력이 좀 된다면 독학으로 전문 지식을 익힐 방법이 있긴 합니다. 

Coursera, edx, MITOCW, Udemy 등에서 제공하는 강좌들에서 이런 고급 수학, 물리학 지식을 제공합니다. 

그리고 git-hub에 가서 MOOC 관련 다운로더 코드를 파이선으로 작성해 놓은 것들이 있는데 다운 받아서 실행하면 강의당 용량이 4G가 정도 하는 패키지로 자막까지 받을 수 있습니다. 미친듯이 사전 찾아가면서 공부하면 다 이해될 수 있습니다. 


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

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

-웹개발자를 위한 로드맵


GITHUB 내용을 보시려면 아래를 클릭하시면 링크됩니다.


WEB DEVELOPER ROADMAP - 2017


github 내용을 좀 발췌했습니다.




2017 년 웹 개발자가되기위한 로드맵

아래에는 취할 수있는 경로와 프론트 엔드, 백엔드 또는 디프 로프가되기 위해 채택하고자하는 기술을 보여주는 일련의 차트가 있습니다. 

나는 이 대학의 학생들과 공유 할 것을 원했던 옛날 교수에게 이 차트를 만들었습니다.

어쨌든 개선 할 수 있다고 생각한다면 제안하십시오.


Roadmap to becoming a web developer in 2017

Below you find a set of charts demonstrating the paths that you can take and the technologies that you would want to adopt in order to become a frontend, backend or a devops. 

I made these charts for an old professor of mine who wanted something to share with his college students to give them a perspective.

If you think that these can be improved in anyway, please do suggest.


기부

로드맵은 바르사 미크 (Balsamiq)를 사용하여 제작되었습니다.

프로젝트 파일은 / project-files 디렉토리에서 찾을 수 있습니다. 

로드맵을 수정하려면 Balsamiq을 열고 Project> Import> Mockup JSON을 클릭하면 로드맵이 열리고 업데이트되며 readme에서 이미지를 업로드 및 업데이트하고 PR을 작성합니다.


향상된 풀 요청 열기

문제에 대한 토론

단어를 퍼트립니다.

kamranahmed.se@gmail.com 또는 Twitter URL에서 나에게 직접 연락주세요.


Contribution

The roadmaps are built using Balsamiq. 

Project file can be found at /project-files directory. 

To modify any of the roadmaps, open Balsamiq, click Project > Import > Mockup JSON, it will open the roadmap for you, update it, upload and update the images in readme and create a PR.


Open pull request with improvements

Discuss ideas in issues

Spread the word

Reach out to me directly at kamranahmed.se@gmail.com or Twitter URL


웹개발자들을 위해 Front-end, Back-end, DevOps에 대한 로드맵이 씌어져 있습니다.

project-files 라는 폴더 안에, json 형태로 값이 담겨져 있고. README.md 화면에 차트로 표시되게 되어 있는거 같네요.프로그래밍이라는 거대한 나무에서도 웹개발자는 극히 일부의 나뭇가지일 뿐인데, 그 나뭇가지들이 잔가지를 쳐서 뻗어나간 분야들도 엄청 다양하네요.

어떤식으로 어떤걸 순차적으로 공부해나갈지 참고해볼때 유용할거같아서 한번 공유해봅니다.

Posted by Joseph514
IT이야기/입코딩2017. 5. 19. 10:02

-풀스택개발자(full-stack-developer)란 무엇일까요?

인터넷에서 개발자 커뮤니티에 글을 보거나, 구직란을 보면 full-stack-developer라는 표현이 있더군요.

한국에 잡코리아나 사람인에 보면 그냥 자바 개발자, php 개발자 이런식으로 몇년차 이렇게 된게 고작인데, 

유독 해외에 취업을 목적으로 링크드인이나 인디드 같은 구인구직 사이트에서 개발자 항목을 봐도 자주 보입니다.

풀 스택 개발자라니?

제 개발세발 영어로 해석해 보자면 모든것(Full)을 쌓은(Stack) 개발자(developer)라는 뜻이 아닐까합니다.

Stack overflow 등에서 쓰이는 Stack이 (깔끔하게 정돈하여) 쌓다[포개다]; 쌓이다, 포개지다. 이런 뜻이니깐요.

okjsp나 그외 유명한 커뮤니티에서도 이런거다 정도만 사람들이 이야기 하지, 위키피디아에 등제되 있지는 않군요.

개발자로 오래 종사하신 분들의 이야기를 들어보면 다양한 견해가 많은데요.

간단히 정리하면 백엔드, 프론트 엔드 다 건드릴수 있는개발자다?!

정도로 보이기도 하고, 처음부터 끝까지 홈페이지 하나를 뚝딱 만들 수 잇는 개발자이겠군요.

한국말로 번역했을 때 범용적인 개발자인지 전천후(어떠한 기상 조건에도 제 기능을 다할 수 있음)개발자 정도로 번역하더군요.

너무 없어 보이는 설명인데, 일단 구글링해서 풀스택 개발자에 대한 정의를 내린 사이트 두개 참고하여 구체적으로 풀 스택 개발자라 칭할 수 있는 자들이 가지는 소양으로 어떤 것들이 있는지 정리해보았습니다. 하나는 sitepoint이라는 사이트고 하나는 laurencegellert입니다.


sitepoint

원문보기

사이트 소개를 하자면 1999 년 Mark Harbottle과 Matt Mickiewicz에 의해 설립되었다고 합니다..

개발자, 디자이너, 프로그래머, 제품 제작자 및 기업가와 같은 웹 전문가가 웹 전문가를 대상한 사이트입니다.


추상적으로 어떤거다 라고 하지 않고, 정확히 어떤 프로그램을 어떻게 다루라고 언급하고 있군요.


전체 스택 개발자가 필요로하는 주요 기술 스택을 세분화하고 분류했습니다.

-System administration(시스템 관리):

1.Linux and basic shell scripting(Linux 및 기본 셸 스크립팅)

2.Cloud computing: Amazon, Rackspace, etc.(클라우드 컴퓨팅 : Amazon, Rackspace 등)

3.Background processing: Gearman, Redis(백그라운드 처리 : Gearman, Redis)

4.Search: Elasticsearch, Sphinx, Solr(검색 : Elasticsearch, Sphinx, Solr)

5.Caching: Varnish, Memcached, APC / OpCache(캐싱 : Varnish, Memcached, APC / OpCache)

6.Monitoring: Nagios(모니터링 : Nagios)

-Web development tools:

1.Version control: Git, Mercurial, SVN(버전 관리 : Git, Mercurial, SVN)

2.Virtualization: VirtualBox, Vagrant, Docker(가상화 : VirtualBox, Vagrant, Docker)

-Back-end tech:

1.Web servers: Apache, Nginx(웹 서버 : Apache, Nginx)

2.Programming language: PHP, NodeJS, Ruby(프로그래밍 언어 : PHP, NodeJS, Ruby)

3.Database: MySQL, MongoDB, Cassandra, Redis, SQL / JSON in general (데이터베이스 : MySQL, MongoDB, Cassandra, Redis, SQL / JSON)

-Front-end tech:

1.HTML / HTML5: Semantic web(HTML / HTML5 : 시맨틱 웹)

2.CSS / CSS3: LESS, SASS, Media Queries(CSS / CSS3 : LESS, SASS, 미디어 쿼리)

3.JavaScript: jQuery, AngularJS, Knockout, etc.(JavaScript : jQuery, AngularJS, Knockout 등)

4.Compatibility quirks across browsers(브라우저 간 호환성 문제)

5.Responsive design(반응형 디자인)

6.AJAX, JSON, XML, WebSocket

-Design:

1.Converting website design into front-end code(웹 사이트 디자인을 프런트 엔드 코드로 변환)

2.UI

3.UX

-mobile technologies.

1.iOS

2.Android

3.Hybrid: PhoneGap, Appcelerator

전체 스택 개발자가되는 것이 더 좋습니까?

풀 스택 개발자 란 신기술에 대한 열린 마음, 각각의 손을 더럽 히고 웹 응용 프로그램이 컨셉에서 완제품에 이르기까지 어떻게 완성되는지를 이해하는 것을 의미합니다.

"풀 스택 개발자 (full-stack developer)"라는 아이디어는 전문화가 이유가 있기 때문에 가능할 수 있는 모든 기술에 능통하지는 않습니다. 위의 각 영역에 대해 이해하고, 팀 구성원 간에 지능적으로 의사 소통하며, 상황에 따라 적절한 자산이 될 수 있도록 하는 것이 중요합니다.

풀 스택 개발자는 미래의 웹 개발에서 점점 더 중요한 역할을 담당하게 될 것입니다. 특히 개발 작업과 같은 개발 방법이 코드 개발을 담당하는 코드 개발자와 관리자 사이의 라인 인 소프트웨어 개발 회사의 필수 구성 요소가 될 때 더욱 그렇습니다 매일 설치 프로그램이 점점 더 가늘어지고 있습니다.

원문

Is it better to be a full-stack developer?

Being a full-stack developer means to have an open mind towards new technologies, having your hands dirty in each one and to have an understanding of how a web application gets done from a concept to design to the finished product.

The idea of a “full-stack developer” isn’t about being fluent in every possible technology there is, because specialization exists for a reason. It’s more about having an understanding in each of the areas above, to communicate intelligently between team members and to be a good asset if the situation needs it.

The full-stack developer will have an increasingly important role in the web development of the future, especially when development methods such as DevOps are becoming an essential part of software development companies, where the line between code developers and administrators who are responsible for code deployment and setup is getting thinner each day.

자 이중에서 제가 할줄아는게 뭐가 있는지 체크해봅시다.


리눅스 쉘스크립팅 언어, 클라우딩 컴퓨터(아마존 웹서버), 버전관리(cvs, svn, git), 가상화(virtualBox), 웹서버(Apache), 프로그래밍 언어(PHP, nodejs, java), 데이터베이스(Mysql, MongoDB, Oracle, Mssql)

시멘틱 웹(HTML, HTML5), CSS, javascript, Jquery, AngualrJS, AJAX, JSON, XML, Android, Hybrid Application 요정도 건드려봤네요.


나름 이것저것 건드려 봤다고 생각했지만 한 70%정도 밖에 만족을 못 시키는군요.

아쉽게도 저는 풀 스텍 개발자는 아닌가 봅니다. 


laurencegellert

원문보기

사이트를 소개하자면 미국 오리건 주 포틀랜드에 거주하는 소프트웨어 개발자인 Laurence Gellert의 웹 사이트입니다.

이 사이트의 글을 참고해 봅니다.

원문

Probably not, but Facebook can ask for it. I was told at OSCON by a Facebook employee that they only hire ‘Full Stack’ developers.  Well, what does that mean?

To me, a Full Stack Developer is someone with familiarity in each layer, if not mastery in many and a genuine interest in all software technology.

이게 뭔 말인가 하니, 페이스북(Facebook) 직원은 풀스택 개발자만 고용한다고 합니다.

풀스택 개발자는 모든 소프트웨어 기술에 대해 많은 지식과 진정한 관심을 가진 각 계층에 익숙한 사람입니다. 라고 정의하고 있군요.

layers of the full stack:

1. Server, Network, and Hosting Environment.(서버, 네트워크 및 호스팅 환경)

2. Data Modeling(데이터 모델링)

3. Business Logic(비즈니스 로직)

4. API layer / Action Layer / MVC(API 계층 / 액션 계층 / MVC)

5. User Interface(사용자 인터페이스)

6. User Experience(사용자 경험)

7. Understanding what the customer and the business need.(고객과 비즈니스에 필요한 것을 이해합니다.)

아마존에서 AWS 공짜로 1년치 사용하면서 리눅스 서버에 푸티로 접속해서 공부해 나갔습니다만 그것도 귀찮아서 안건드리고 있네요. 처음부터 끝까지 사이트 하나를 오픈할수 있어야 혼자 아르바이트를 하든 용돈벌이를 하든 하지 않을까 합니다.

나이 지긋하신 차장급 이상 개발자들은 한 우물을 파라고, java만 진득히 하다 보면, 다른 것들도 알게 될꺼라고 이야기하는 사람들도 있더군요. 

사실 한국 SI에서는 java만 해도 몇년을 먹고 살았고 앞으로도 먹고 살 수 있으니깐요.

어설프게 헛바람들 듯 트랜드 따라간다고 건드리고 제대로 못 배우는 것 보다는 한 언어를 좀더 깊이 있게 배울 시간도 모자를 수도 있구요.

목표로 저는 풀 스택 개발자를 목표로 공부해 나가 보고 싶습니다.


Posted by Joseph514